簡體   English   中英

一次只執行一個線程,如何同時執行多個任務?

[英]At a time only one thread is executed, how to execute multiple tasks simultaneously?

點擊http://www.javatpoint.com/sleep()-方法

它的教程說,只有當一個線程處於睡眠狀態時,另一個線程才會被線程調度程序拾取。 那么每次只有一個線程在工作嗎?

在具有多個內核的系統上,兩個線程大約在同一時間啟動(取決於創建線程需要多長時間)。

睡眠的結果可能最終導致線程“同步”,因此兩個線程將在相同(或幾乎相同)的時間(取決於操作系統)運行和/或睡眠。 如果兩個線程都在彼此的一個系統計時器間隔內啟動,則將發生“同步”。 對於Windows,該計時器通常以64hz或每滴答15.625 ms的速度運行,因此兩個線程將在同一滴答上每32個計時器滴答(500 ms)退出睡眠狀態。

在睡眠期間,操作系統可以在與執行睡眠的線程相同的內核上運行其他線程。 在這種情況下,除非系統只有一個核心(並且沒有超線程),否則兩個線程將同時運行。

我假設System.out.println(i)是多線程安全的(因此來自兩個線程的兩個實例同時不會引起問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM