執行緒的控制 sleep

2021-09-29 20:10:02 字數 687 閱讀 5671

執行緒睡眠

如果需要讓當前執行的執行緒暫停一段時間,並進入阻塞狀態可以呼叫thread類的靜態方法sleep()實現

當當前執行緒呼叫sleep方法後,該執行緒會進入阻塞狀態,在該執行緒睡眠的時間裡,該執行緒不會有執行的機會,即使執行的程式中沒有其他執行緒。

@override

public

void

run(

)catch

(exception e)

system.out.

println

("睡眠了2秒後時間"

sleep()和yield的區別

i>sleep()方法暫停執行緒後會給其他執行緒執行的機會,不會理會其他執行緒的優先順序,而yield()方法只會給優先順序相同或優先順序更高的執行緒執行的機會

ii>sleep()方法會讓執行緒進入到阻塞的狀態,直到經過阻塞時間才會進入到就緒狀態,而yield()方法只是將執行緒強制進入到就緒狀態

iii>sleep()方法會丟擲interruptedexception異常,而yield()方法沒有宣告丟擲異常

iv>sleep()方法比yield()方法有更好的可移植性。

執行緒sleep的坑

執行緒可以用繼承thread類或者實現runnable介面來實現.thread.sleep 是thread類的方法,只對當前執行緒起作用,睡眠一段時間.如果執行緒是通過繼承thread實現的話這2個方法沒有區別 如果執行緒是通過實現runnable介面來實現的,則不是thread類,不能直接使用th...

關於執行緒的sleep函式

執行緒池的實現基本上是乙個生產者消費者模型,具體就是1個生產者對應多個多個消費者。主線程對應其中的生產者,將到達的客戶請求進行封裝後送到商店供消費者使用 這裡的商店可以用鍊錶或是其它容器來實現 而執行緒池中的多個工作執行緒就是這些商品 客戶請求 的消費者。include include includ...

Java的執行緒睡眠sleep

一 點睛 如果需要讓當前正在執行的執行緒暫停一段時間,並進入阻塞狀態,則可以通過thread類的靜態方法sleep 方法來實現。當當前執行緒呼叫sleep 方法進入阻塞狀態後,在其睡眠時間段內,該執行緒不會獲得執行的機會,即使系統中沒有其他可執行的執行緒,處於sleep 中的執行緒也不會執行,因此s...