对于线程冲突的理解:
在两个浏览器中输入的内容
360浏览器:http://localhost:8888/WebDemo/safe.do?name=aaa
Microsoft Edge浏览器:http://localhost:8888/WebDemo/safe.do?name=bbb
当我在360中输出name=aaa后发送请求,Tomcat创建Servlet对象并生成线程1,再在Edge中发送请求name=bbb
使用的是同一个Servlet对象并生成线程2。线程1中name=aaa,pw=resp.getWriter()创建的是线程1的pw后进入线程休眠状态,这时线程2启动name=bbb,pw=resp.getWriter()创建的是线程2的pw,因为PrintWriter pw是成员变量,是被线程共享的,所以在这时线程2的pw覆盖线程1的pw。当线程1结束休眠运行时输出name值aaa,由于pw被覆盖此时是线程2的pw,所以会把aaa输入到Edge浏览器,360浏览器没有输出值,然后pw刷新关闭。这时线程2激活,但pw已经被关闭了,所以后面的输出代码失去作用。
老师是这样的过程吗?
遇到需要更新的问题,找了半天解决了
解决方案:
使用notepad打开xftp6安装目录文件 nslicense.dll使用HexEditor插件
插件下载地址:https://github.com/chcg/NPP_HexEdit/releases
notepad百度下载
插件需要进行自行手动下载安装,安装过程
设置-导入插件的dll文件重新启动。
通过插件-hexEditer来使用打开对应的nslicense.dll文件
如果没有再notepad里面显示出对应的插件,注意下载的插件是64还是32位和notepad对应不然无法使用
使用ctrl + f搜索7f 0c 81 f9 80 33 e1 01 0f 86改为7f 0c 81 f9 80 33 e1 01 0f 83
如果实在不行直接修改当前系统时间也可以更新问题
但是治标不治本。