Linux 拨号vps windows公众号手机端

java线程sleep和wait的区别有哪些

lewis 7年前 (2018-05-14) 阅读数 11 #程序编程
文章标签 Java

Java中的线程sleep和wait方法有以下区别:

  1. 调用wait方法的线程会放弃自己的锁,并进入等待状态,直到其他线程调用相同对象的notify或notifyAll方法来唤醒它。而调用sleep方法的线程则会暂时停止执行,但保持所持有的锁。

  2. wait方法必须在同步代码块或同步方法中调用,而sleep方法可以在任何地方调用。

  3. sleep方法是Thread类的静态方法,而wait方法是Object类的方法。

  4. sleep方法的参数是指定线程暂停的时间,单位是毫秒,而wait方法可以带有一个超时参数,指定线程等待的时间。

  5. sleep方法是线程的静态方法,可以在任何地方调用,并不需要持有对象锁。而wait方法是Object类的实例方法,必须在持有对象锁的情况下调用。

  6. 当线程调用sleep方法时,它会一直持有所持有的锁,直到睡眠时间结束。而当线程调用wait方法时,它会释放所持有的锁,进入等待状态,直到被唤醒。

总的来说,sleep方法用于暂停当前线程的执行,不会释放锁,而wait方法用于线程间的通信,会释放锁。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门