作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个连接到设备并通过 SNMP 协议(protocol)获取其参数的小程序。它在 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;
通过在 SNMP get 请求方法中添加“synchronized”关键字,问题得到解决。
synchronized public SNMPVarBindList getMIBEntry(String itemID)
关于java - 小程序不适用于 JRE 6u25,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6000325/
我是一名优秀的程序员,十分优秀!