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)。 –