Dea*_*ean 5 windows winapi multithreading win32-process
我正在C中制作win32程序.
当您运行多个线程,并且其中一个线程正在等待事件时(WaitForSingleObject()
例如使用),该线程是否仍然获得其完整的CPU时间片?
换句话说,操作系统是否知道线程不需要其时间片,直到其中一个事件被发出信号?
是的 - 线程被阻塞,直到它等待的任何信号被发出信号.该线程在被阻塞时不会被安排运行,因此其他线程将获得所有CPU时间.
请注意,时间片不会进入太多.线程可以在时间片的中间放弃执行,并且(例如)如果等待的内容快速发出信号,它可能会在其原始时间片到期之前再次开始执行.当发出信号时,正在等待它的线程可以立即唤醒,不一定等待时间片的结束(例如,如果正在等待的线程具有比正在运行的线程更高的优先级).
归档时间: |
|
查看次数: |
2031 次 |
最近记录: |