957
汽車大全
對interrupt、interrupted和isInterrupted的理解
1.interrupt
線程中斷使用,Thread有stop() 不推薦使用,建議用中斷的方法來實現
Thread.interrupt(),
2.interrupted
線程中斷,並且清除中斷狀態(參考介紹interrupted的實現:https://blog.csdn.net/hj7jay/article/details/53462553)
public static boolean interrupted() {
return currentThread().isInterrupted(true);
}
* Tests if some Thread has been interrupted. The interrupted state
* is reset or not based on the value of ClearInterrupted that is
* passed.
*/
private native boolean isInterrupted(boolean ClearInterrupted);
3.isInterrupted
檢查中斷狀態
4.InterruptedException
JDK中響應中斷的方式是拋出異常,拋出InterruptedException時,會清除中斷狀態,參考:https://blog.csdn.net/hj7jay/article/details/53462553
這段引用:“
”
需要在catch InterruptedException中 執行 Thread.currentThread().interrupt(); 來恢複中斷狀態
5.無法被中斷的處理方式介紹
參考:https://www.jianshu.com/p/f75b77bdf389
這篇介紹能被中斷和無法被中斷的處理方式介紹,可以看看無法被中斷的場景以及參考的資料,同時感覺這位同學的這句話蠻好,“InterruptedException 是最常見的中斷表現形式。所以如何處理 InterruptedException 便成為 Java 中斷知識中的必修課。”
20171016
最後更新:2017-10-16 11:03:26