icon-cookie
The website uses cookies to optimize your user experience. Using this website grants us the permission to collect certain information essential to the provision of our services to you, but you may change the cookie settings within your browser any time you wish. Learn more
I agree
Summary | 10 Annotations
当一个线程运行时,另一个线程可以调用对应的 Thread 对象的 interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用 interrupt()方法,线程并没有实际被中断,会继续往下执行。
2017/08/01 09:04
由于不确定的线程规划,上图运行结果的后两行可能顺序相反,这取决于主线程和新线程哪个先消亡。但前两行信息的顺序必定如上图所示。
2017/08/01 09:08
如果线程在调用 sleep()方法前被中断,那么该中断称为待决中断,它会在刚调用 sleep()方法时,立即抛出 InterruptedException 异常
2017/08/01 09:14
这种模式下,main 线程中断它自身。除了将中断标志(它是 Thread 的内部标志)设置为 true 外,没有其他任何影响。
2017/08/01 09:41
。线程被中断了,但 main 线程仍然运行
2017/08/01 09:42
,一旦调用 sleep()方法,它就会注意到待决中断的存在,并抛出 InterruptException
2017/08/01 09:42
可以在 Thread 对象上调用 isInterrupted()方法来检查任何线程的中断状态
2017/08/01 09:44
而一旦 sleep()方法抛出异常,它将清空中断标志,此时isInterrupted()方法将返回 false
2017/08/01 09:44
由于它是静态方法,因此不能在特定的线程上使用,而只能报告调用它的线程的中断状态
2017/08/01 09:46
与 isInterrupted()不同,它将自动重置中断状态为 false,第二次调用 Thread.interrupted()方法,总是返回 false,除非中断了线程
2017/08/01 09:46