interrupt:

????調用方法,是線程處于中斷狀態,但是這個方法只是讓線程設置為中斷狀態,并不會真正的停止線程。支持線程中斷的方法就是在堅持線程中斷狀態,一旦線程中斷狀態被設置為中斷,就會拋出異常。


interrupted 、isInterrupted 區別

????

public static boolean interrupted () {
? ? return currentThread().isInterrupted(true);
}


public boolean isInterrupted () {
? ? return isInterrupted( false);
}


區別:這兩個方法都會調用同一個方法,只不過是一個傳值為true,一個傳值為false。

? ?interrupted是作用于當前線程,isInterrupted 作用于當前方法的對象線程上的。


如果這個參數為true,說明返回線程的狀態位后,要清掉原來的狀態位(恢復成原來情況)。這個參數為false,就是直接返回線程的狀態位。

這兩個方法很好區分,只有當前線程才能清除自己的中斷位(對應interrupted()方法)