`

sleep和wait方法的比较

 
阅读更多
1.sleep()方法介绍 
sleep()方法是使线程停止一段时间。在sleep 时间间隔期满后,线程不一定立即恢复执行。
  这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行(单核cpu同时只能执行一个线程),
除非(a)醒来的线程具有更高的优先级。(b)正在运行的线程因为其它原因而阻塞。 
2.wait()方法介绍 
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 当调用wait()后,线程会释放掉它所占有的锁标志,从而使线程所在对象中的其它synchronized数据可被别的线程使用。

waite()和notify()的区别 waite()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics