java 超时控制的问题
网上搜了一些关于超时控制的问题
大多是使用守护线程作为计时器,
然后在计时器的start和cancel方法中写超时代码
可是系统给出超时Exception确实该守护线程的报错
不能在主线程中收到这种报错信息
这个就不能够起到超时控制的作用了
请问大家还有其他的方案能够控制住超时代码不?
或者思路想法什么的
大家交流下
------解决方案--------------------要看你想控制的是什么,比如是防止JDBC操作超时,那么可以在超时后调用cancel()命令。
如果是常规性的超时控制,则没有很好的方法,只能用状态变化来通知主线程,但是需要主线程去检查这个状态。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------这个问题个人觉得无解,因为是不可控的,比如你去做一个IO操作,
比如光驱去读一张非常烂的盘,读半天读不出来,但是你想结束,但是结束不了。因为很难马上结束IO操作。
------解决方案--------------------
------解决方案--------------------可以参考多线程设计模式之Future模式!
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------Socket的超时?
我是通过捕获
SocketTimeoutException,然后置一个(其他线程的)标志位来实现的。