sleep与wait的区别

Posted draymond

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sleep与wait的区别相关的知识,希望对你有一定的参考价值。


    1 使用对象区别
        sleep的调用者是Thread,wait的调用者是所有实例对象
2 使用位置的区别 sleep在任何位置都能使用,而wait/notify/notifyAll需要在"synchronized"同步代码块中使用(wait需要一个监视器monitor)
3 是否释放资源
    wait方法释放锁(如果线程拥有某个或某些对象的同步锁,那么在调用了wait()后,这个线程就会释放它持有的所有同步资源,而不限于这个被调用了wait()方法的对象)
    sleep方法不释放锁(sleep可以在没有锁的地方使用,佐证了sleep不会释放锁)



synchronized存在位置与monitor
  静态方法:Class
  静态代码块:Class(也可以是定义的其他Class)
  非静态方法:this
  非静态代码块:this或者其他对象的实例
 

以上是关于sleep与wait的区别的主要内容,如果未能解决你的问题,请参考以下文章

sleep与wait的区别

wait方法和sleep方法的区别

wait方法和sleep方法的区别

sleep和wait有啥区别

JAVA-sleep和wait的区别

wait与sleep的区别