0
如果我打電話給我的主要功能std::this_thread::sleep_for(std::chrono::seconds(1))
,我創建了2個線程(使用std::thread
),我有1個cpu核心。std :: this_thread :: sleep_for - 是否將上下文切換到此線程?
在此期間是否有任何上下文切換到主線程?或者也許只有1秒後會有上下文切換到主線程?
我不知道它是如何工作......我認爲有兩種可能:
1)系統多次切換到主背景下,檢查後時間不超過和交換機,什麼都不做切換到另一個線程 2)系統中斷,當時間結束時切換上下文
如果你的線程正在休眠,你的操作系統沒有理由爲該線程調度時間片,所以沒有。 –
這是最有可能的實現依賴,請參見[此問題](http://stackoverflow.com/questions/17325888/c11-thread-waiting-behaviour-stdthis-threadyield-vs-stdthis-thread)。 –