【转】thread.sleep(0)与thread.sleep(1)的区别

时间:2021-08-11 07:48:02

Thread.Sleep(0)

  Sleep的意思是告诉操作系统自己要休息n毫秒,这段时间就让给一个就绪的线程吧。当n=0时,意思是要放弃自己剩下的时间片,但是仍然是就绪状态。Sleep(0)只允许那些优先级相等或更高的线程使用当前的CPU,其它线程只能等着挨饿了。如果没有合适的线程,那当前线程会重新使用CPU时间片。

Thread.sleep(1)

  该方法使用1作为参数,这会强制当前线程放弃剩下的时间片,并休息1毫秒(因为不是实时操作系统,时间无法保证精确,一般可能会滞后几毫秒或一个时间片)。但因此的好处是,所有其它就绪状态的线程都有机会竞争时间片,而不用在乎优先级。