这个bug(也不能算是bug)是在学习多线程时候,其中线程的终止方法this.interrupted()方法调用后和书上的结果不一致,分析记录一下原因,mark一下下~
先上图
运行类的代码如下图:
方法跑完了但是this.interrputerd这个方法以及结束了,
当做了调整之后,把需要run中循环执行的次数增多,就能出现资料中的效果
得到的结果与资料中的结果一致。
从结果中可以看出,方法isInterrupted()并未清除状态标志,所以打印了2个true
最后,再来看一下,这两个方法的解释:
1.this.interrupted():测试当前线程是否已经中断状态,执行后具有将状态标志清除为false的功能;
2.this.interrupted():测试线程Thread对象是否已经是中断状态,但是不清除状态标志。