主线程中执行thread.interrupt(),此时子线程没有处于sleep中,能中断子线程吗
来源:5-3 如何停止线程

海天s
2019-12-25
代码如下图:
第29行主线程执行thread.interrupt(),而此时子线程还在执行while循环,这种情况下,子线程执行完while循环后到第18行Thread.sleep()也能抛出异常?
经测试是可以的。
但我以前一直以为:只有子线程正在睡眠时,主线程中执行thread.interrupt()才会导致子线程的sleep抛出异常。我以前的理解是错误的?
写回答
2回答
-
是的,你以前的理解是错误的。
012019-12-25 -
海天s
提问者
2019-12-25
老师我看了Thread.sleep的源码注释:
也就是说,只要主线程执行了thread.interrupt(),哪怕子线程此时正在处于业务逻辑,那后面的sleep也会抛出异常?源码注释也不是特别清楚。
022019-12-25
相似问题