Java-Applet无法在JRE 6u25上运行

我有一个连接到设备并通过SNMP协议获取其参数的applet.它在JRE 6u20上工作正常,但是在将JRE更新为6u25之后,效果不佳.

在6u20上,检索设备参数花费了几秒钟,但是在6u25上,它花费了更多时间,最后大多数参数均未检索到.

有一个SwingWorker可以读取每个参数,我使用此Java SNMP Package.

这些版本的JRE之间有什么区别?如何找出造成问题的原因?

解决方法:

最后,我弄清楚了问题所在. Java SNMP Package GetRequest不是线程安全的.在JRE 6u20上没有问题,因为JRE 6u20中的SwingWorker默认线程池只有一个工作线程,但是在JRE 6u25中,工作线程数是10

SwingWorker.MAX_WORKER_THREADS = 10;

通过将“ synchronized”关键字添加到SNMP get请求方法中,可以解决此问题.

synchronized public SNMPVarBindList getMIBEntry(String itemID)
上一篇:java-为Swing小程序/应用程序创建自定义模式对话框


下一篇:Spring Boot - 访问外部接口最全总结