假設我有2個線程a和b在同一進程中運行。處理器從b中運行幾條指令,等等,直到達到如下代碼行:Thread.sleep(1000)。睡眠線程何時繼續在Java中執行?
問題是我真的不明白處理器接下來會做什麼。
1)
- 條條的開始睡1000毫秒 :
- 如果我懷疑這些2個scenerios processor仍然運行線程代碼b
- 然後等到它完成
- 並運行線程提供更多的代碼
- 其他
- 運行更從線程代碼
2)
- 主題一開始睡眠爲1000毫秒
- 同時B正在運行
1000 milisecond間隔已經結束這樣:
如果proccessor仍然運行從線程B代碼
- STOP THREAD B.因爲線程一個具有更高的優先級它的代碼必須在1000毫秒間隔後馬上運行
- 並運行線程代碼更多
- 然後從我們離開的地方運行線程B的代碼。從螺紋
- 其他
- 運行更加碼
哪一個類似於什麼實際發生在幕後? 如果兩者都不對,請指出我正確的答案。
當它醒來。 –
你說「處理器」,但現在大多數系統都是SMP。 – stark
@stark不相關的問題 – m0skit0