java中多執行緒常見的幾個引數:
sleep:在指定的毫秒數內讓當前正在執行的執行緒休眠(暫停執行).
此操作受到系統計時器和排程程式精度和準確性的影響。
該執行緒不丟失任何監視器的所屬權。
呼叫sleep的時候鎖並沒有被釋放。
休眠
Java SE5引入了更加顯示的sleep()作為TimeUnit類的一部分,這個方法允許你指定sleep()延遲的時間單元,因此可以提供更好的可閱讀性。
wait:呼叫wait使執行緒掛起,直到執行緒得到了notify或notifyAll訊息,執行緒才會進入就緒狀態。
使你可以等待某個條件發生變化,而改變這個條件超出了當前方法的控制能力。
執行緒的執行被掛起,物件上的鎖被釋放。意味著另一個任務可以獲得這個鎖。
因此在該物件中的其他synchronized方法可以在wait期間被呼叫。
yield:相當於:我的工作已經做的差不多了,可以讓給別的執行緒使用CPU了。
當呼叫yield時,你也是在建議具有相同優先順序的其他執行緒可以執行。
對於任何重要的控制或在調整應用時,都不能依賴於yield。
yield並不意味著退出和暫停,只是,告訴執行緒排程如果有人需要,可以先拿去,我過會再執行,沒人需要,我繼續執行
呼叫yield的時候鎖並沒有被釋放。
interrupt:中斷執行緒。
Thread類包含interrupt()方法,因此你可以中止被阻塞的任務。
這個方法將設定執行緒的中斷狀態。
如果一個執行緒已經被阻塞,或者試圖執行一個阻塞操作,那麼設定這個執行緒的中斷狀態將丟擲InterruptedException。
當丟擲該異常或者該任何呼叫Thread.interrupted()時,中斷狀態將復位。
你在Executor上呼叫shutdownNow(),那麼它將傳送一個interrupt()呼叫給他啟動的所有執行緒。
java中多執行緒常見的幾個引數:
sleep:在指定的毫秒數內讓當前正在執行的執行緒休眠(暫停執行).
此操作受到系統計時器和排程程式精度和準確性的影響。
該執行緒不丟失任何監視器的所屬權。
呼叫sleep的時候鎖並沒有被釋放。
休眠
Java SE5引入了更加顯示的sleep()作為TimeUnit類的一部分,這個方法允許你指定sleep()延遲的時間單元,因此可以提供更好的可閱讀性。
wait:呼叫wait使執行緒掛起,直到執行緒得到了notify或notifyAll訊息,執行緒才會進入就緒狀態。
使你可以等待某個條件發生變化,而改變這個條件超出了當前方法的控制能力。
執行緒的執行被掛起,物件上的鎖被釋放。意味著另一個任務可以獲得這個鎖。
因此在該物件中的其他synchronized方法可以在wait期間被呼叫。
yield:相當於:我的工作已經做的差不多了,可以讓給別的執行緒使用CPU了。
當呼叫yield時,你也是在建議具有相同優先順序的其他執行緒可以執行。
對於任何重要的控制或在調整應用時,都不能依賴於yield。
yield並不意味著退出和暫停,只是,告訴執行緒排程如果有人需要,可以先拿去,我過會再執行,沒人需要,我繼續執行
呼叫yield的時候鎖並沒有被釋放。
interrupt:中斷執行緒。
Thread類包含interrupt()方法,因此你可以中止被阻塞的任務。
這個方法將設定執行緒的中斷狀態。
如果一個執行緒已經被阻塞,或者試圖執行一個阻塞操作,那麼設定這個執行緒的中斷狀態將丟擲InterruptedException。
當丟擲該異常或者該任何呼叫Thread.interrupted()時,中斷狀態將復位。
你在Executor上呼叫shutdownNow(),那麼它將傳送一個interrupt()呼叫給他啟動的所有執行緒。