sleep(0)
如果有优先级高于或等于当前线程的就绪状态线程,那么操作系统会将当前线程从处理器执行队列中移除,然后切换时间片给那些优先级高的线程执行;如果没有,则sleep(0)相当于不起任何作用。
sleep(1)
不管当前有没有高于或等于当前线程的就绪状态线程,操作系统都会切换时间片去执行其他就绪线程或空等待1-10ms左右的时间。
因此,sleep(0)有可能会导致线程的上线文切换,而sleep(1)一定会导致线程的上线文切换。
本文详细解析了sleep(0)和sleep(1)在多线程环境中的行为差异,重点讨论了它们如何影响线程上下文切换,以及这种切换对程序性能的影响。
如果有优先级高于或等于当前线程的就绪状态线程,那么操作系统会将当前线程从处理器执行队列中移除,然后切换时间片给那些优先级高的线程执行;如果没有,则sleep(0)相当于不起任何作用。
不管当前有没有高于或等于当前线程的就绪状态线程,操作系统都会切换时间片去执行其他就绪线程或空等待1-10ms左右的时间。
因此,sleep(0)有可能会导致线程的上线文切换,而sleep(1)一定会导致线程的上线文切换。
660
1281

被折叠的 条评论
为什么被折叠?