在《Java核心技术 卷II》第7章多线程里有这样一段代码:public void run()
{
try
{
...
while(more work to do)
{
do more work
}
}
catch(InterruptedException exception)
{
//thread was interrupted during sleep or wait
}
finally
{
cleanup ,if required
}
//exit run method and terminate thread
}书中说:“这个代码框架存在一个问题,如果在线程处于睡眠或者等待状态时调用interrupt方法,那么将不会产生任何InterruptedException事件”。
-----------------------------------------------------------------------------------------
上面这句话该怎么理解,interrupt方法的作用不就是:如果一个线程被调用的sleep或wait所中断,调用interrupt将产生一个InterruptException事件吗?脑袋晕了,谁给说明说明啊
{
try
{
...
while(more work to do)
{
do more work
}
}
catch(InterruptedException exception)
{
//thread was interrupted during sleep or wait
}
finally
{
cleanup ,if required
}
//exit run method and terminate thread
}书中说:“这个代码框架存在一个问题,如果在线程处于睡眠或者等待状态时调用interrupt方法,那么将不会产生任何InterruptedException事件”。
-----------------------------------------------------------------------------------------
上面这句话该怎么理解,interrupt方法的作用不就是:如果一个线程被调用的sleep或wait所中断,调用interrupt将产生一个InterruptException事件吗?脑袋晕了,谁给说明说明啊
解决方案 »
- 还是问过的.老问题啊!
- 正则表达式
- Browser样式的问题
- 紧急需要----需要JSP英文内容最好是有英文和汉语双份译过来的.......
- 我想根据当前日期 取到前一日 前一月 前一年 应该怎么做?
- 求助大侠帮我看看俄罗斯方块的代码,非常感谢
- 有关 Java 中覆盖的定义的一个问题
- 新手上路学jsp,请问有合适的已经完成的小项目可以参考么?最好是access数据库的。谢谢大家乐。
- 100分求Rational XDE Developer for Java V2003版下载
- 请教几个方法!
- response.setHeader("Refresh","0"+url)不能redirect另一个网页?
- 本人的新发现,与人共享.
{
//thread was interrupted during sleep or wait
}
因为你没有处理这个异常,调用者当然不知道这个异常的存在了
while(!interrupted() && more work to do)
{
do more work
}
需要调用interrupted方法来确定它最近是否被中断了