阅读背景:

sleep()和wait()有什么区别

来源:互联网 

       sleep就是正在履行的线程自动让出cpu,cpu去履行其他线程,在sleep指定的时光过后,cpu才会回到这个线程上持续往下履行,如果当前线程进入了同步锁,sleep办法其实不会释放锁,即便当前线程应用sleep办法让出了cpu,但其他被同步锁挡住了的线程也没法得到履行。wait是指在一个已进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在期待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify办法(notify其实不释放锁,只是告知调用过wait办法的线程可以去参与取得锁的竞争了,但不是马上得到锁,由于锁还在他人手里,他人还没释放。如果notify办法后面的代码还有很多,须要这些代码履行完后才会释放锁,可以在notfiy办法后增长一个期待和一些代码,看看后果),调用wait办法的线程就会消除wait状况和程序可以再次得到锁后持续向下运行。对wait的讲授必定要配合例子代码来解释,才显得自己真明确。       sleep就是正在履行的线程自动让出cpu,cpu去履行其他线程,在sleep指定的时




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: