[英]At a time only one thread is executed, how to execute multiple tasks simultaneously?
在具有多個內核的系統上,兩個線程大約在同一時間啟動(取決於創建線程需要多長時間)。
睡眠的結果可能最終導致線程“同步”,因此兩個線程將在相同(或幾乎相同)的時間(取決於操作系統)運行和/或睡眠。 如果兩個線程都在彼此的一個系統計時器間隔內啟動,則將發生“同步”。 對於Windows,該計時器通常以64hz或每滴答15.625 ms的速度運行,因此兩個線程將在同一滴答上每32個計時器滴答(500 ms)退出睡眠狀態。
在睡眠期間,操作系統可以在與執行睡眠的線程相同的內核上運行其他線程。 在這種情況下,除非系統只有一個核心(並且沒有超線程),否則兩個線程將同時運行。
我假設System.out.println(i)是多線程安全的(因此來自兩個線程的兩個實例同時不會引起問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.