windows – WaitForSingleObject是否放弃了线程的时间片?

我正在C中制作win32程序.

当你有多个线程在运行,并且其中一个线程正在等待事件时(例如使用WaitForSingleObject()),该线程是否仍然获得其完整的cpu时间片?

换句话说,操作系统是否知道线程不需要其时间片,直到其中一个事件被发出信号?

是的 – 线程被阻塞,直到它等待的任何信号被发出信号.该线程在被阻塞时不会被安排运行,因此其他线程将获得所有cpu时间.

请注意,时间片不会进入太多.线程可以在时间片的中间放弃执行,并且(例如)如果它正在等待的内容快速发出信号,它可能会在其原始时间片到期之前再次开始执行.当发出信号时,正在等待它的线程可以立即唤醒,不一定等待时间片的结束(例如,如果正在等待的线程具有比正在运行的线程更高的优先级).

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...