项目在调用一个WebService接口( wsimport方式 )的时候偶尔会出现无响应的情况(表现为程序一直阻塞, 也不抛出任何异常), 查看栈信息如附图
现在的解决思路就是创建一个子线程来调用WS, 如果调用无响应(主线程等待超时), 就终止子线程
因为线程状态一直为Runnable, 而且也不是循环, 没法用interrupt()
来中断线程, 这种情况下, 使用stop()
终止线程合适吗? 有没有什么更好的解决办法?
调用ws线程栈信息:
项目在调用一个WebService接口( wsimport方式 )的时候偶尔会出现无响应的情况(表现为程序一直阻塞, 也不抛出任何异常), 查看栈信息如附图
现在的解决思路就是创建一个子线程来调用WS, 如果调用无响应(主线程等待超时), 就终止子线程
因为线程状态一直为Runnable, 而且也不是循环, 没法用interrupt()
来中断线程, 这种情况下, 使用stop()
终止线程合适吗? 有没有什么更好的解决办法?
调用ws线程栈信息:
8 回答6.5k 阅读
2 回答3.3k 阅读
3 回答1.8k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
2 回答1.9k 阅读
1 回答903 阅读✓ 已解决
1 回答1.9k 阅读
不要手动操控线程生命周期。你要做的是在线程的Run方法调用WS的时候添加超时参数,一旦超时直接记录超时日志并return,此时线程会自动终止。