【发布时间】:2016-10-11 13:13:38
【问题描述】:
如果我调用我的主函数 std::this_thread::sleep_for(std::chrono::seconds(1)) 并创建 2 个线程(使用 std::thread)并且我有 1 个 cpu 内核。
在此期间是否有任何上下文切换到主线程?或者可能只有 1 秒后才会有上下文切换到主线程?
我不知道它是如何工作的......我认为有两种可能性:
1) 系统多次切换到主上下文,然后检查时间是否结束并切换,什么也不做并切换到另一个线程 2)有系统中断,时间结束时切换上下文
【问题讨论】:
-
如果您的线程正在休眠,那么您的操作系统没有理由为该线程安排时间片,所以没有。
-
这很可能取决于实现,另请参阅this question。
标签: c++ multithreading c++11 stdthread