簡體   English   中英

std :: this_thread :: sleep_for-上下文切換到此線程嗎?

[英]std::this_thread::sleep_for - is context switch to this thread?

如果我在主函數std::this_thread::sleep_for(std::chrono::seconds(1))調用,我創建了2個線程(使用std::thread ),並且我有1個cpu核心。

在這段時間內是否有任何上下文切換到主線程? 或者,也許只有1秒之后,上下文才會切換到主線程?

我不知道它是如何工作的...我認為有兩種可能性:

1)系統多次切換到主上下文,然后檢查時間是否結束並切換,不執行任何操作並切換到另一個線程2)系統中斷,時間結束時切換上下文

AFAIK它取決於操作系統的調度程序實現。 但是,當今的現代操作系統非常聰明,可以將明確要求臨時掛起的線程放在另一個隊列中,這樣就不會計划將其占用CPU。
所以,

在這段時間內是否有任何上下文切換到主線程?

沒有。

或者,也許只有1秒之后,上下文才會切換到主線程?

是的,在1秒或更長時間后。

暫無
暫無

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

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