当前位置:嗨网首页>书籍在线阅读

12-结果分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

结果分析

下面是以上案例运行结果的截图。从图中可以看到, PrimeGenerator 线程在检测到自己被中断后,输出信息并结束了运行。

9.png Thread 类有一个用来保存线程是否已被中断的状态属性,其属性值为 boolean 类型,默认值为 false 。当调用一个线程对象的 interrupt() 方法时,该状态属性将修改为 true 。而方法 isInterrupted() 仅返回该状态属性的值。

main() 方法中,输出了中断线程的一些状态信息。在本案例中,虽然在这些代码之前调用了线程的中断,但是在执行这些代码时,任务线程并未执行到中断判断和处理过程,因此,此时输出的线程状态为 RUNNABLE ,方法 isInterrupted() 的结果为 true ,当然方法 isAlive() 的结果也为 true 。如果这些代码执行是在 Thread 中断完成之后[可以制造机会,如通过在 main 调用 sleep() 使得主线程休眠1s,使得 task 线程完成中断,那么 isInterrupted()isAlive() 的结果将为 false