sleep(0)
如果有优先级高于或等于当前线程的就绪状态线程,那么操作系统会将当前线程从处理器执行队列中移除,然后切换时间片给那些优先级高的线程执行;如果没有,则sleep(0)相当于不起任何作用。
sleep(1)
不管当前有没有高于或等于当前线程的就绪状态线程,操作系统都会切换时间片去执行其他就绪线程或空等待1-10ms左右的时间。
因此,sleep(0)有可能会导致线程的上线文切换,而sleep(1)一定会导致线程的上线文切换。
如果有优先级高于或等于当前线程的就绪状态线程,那么操作系统会将当前线程从处理器执行队列中移除,然后切换时间片给那些优先级高的线程执行;如果没有,则sleep(0)相当于不起任何作用。
不管当前有没有高于或等于当前线程的就绪状态线程,操作系统都会切换时间片去执行其他就绪线程或空等待1-10ms左右的时间。
因此,sleep(0)有可能会导致线程的上线文切换,而sleep(1)一定会导致线程的上线文切换。