首页 > Java > java教程 > 在Java中,wait()和sleep()方法之间的区别是什么?

在Java中,wait()和sleep()方法之间的区别是什么?

WBOY
发布: 2023-08-26 23:37:21
转载
816 人浏览过

在Java中,wait()和sleep()方法之间的区别是什么?

sleep()方法Thread类的一个静态方法,它可以发送当前运行的数据线程进入“不可运行”状态,而 wait()方法是一个实例方法,我们使用线程对象调用它,并且它仅对该对象产生影响。 sleep() 方法在时间到期后唤醒或调用  interrupt()  方法,而 wait()  方法在时间到期后唤醒或调用 >notify()notifyAll() 方法。 sleep() 方法在等待时不会释放任何锁或监视器,而 wait() 方法会在等待时释放锁或监视器。

sleep() 方法的语法

public static void sleep(long millis) throws InterruptedException
登录后复制

wait() 方法的语法

public final void wait() throws InterruptedException<strong>
</strong>
登录后复制

示例

public class ThreadTest implements Runnable {
   private int number = 10;
   public void methodOne() throws Exception {
      synchronized(this) {
         number += 50;
         System.out.println("Number in methodOne(): " + number);
      }
   }
   public void methodTwo() throws Exception {
      synchronized(this) {
         Thread.sleep(2000); // calling sleep() method 
         this.wait(1000); // calling wait() method
         number *= 75;
         System.out.println("Number in methodTwo(): " + number);
      }
   }
   public void run() {
      try {
         methodOne();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   public static void main(String[] args) throws Exception {
      ThreadTest threadTest = new ThreadTest();
      Thread thread = new Thread(threadTest);
      thread.start();
      threadTest.methodTwo();
   }
}
登录后复制

输出

Number in methodOne(): 60
Number in methodTwo(): 4500
登录后复制

以上是在Java中,wait()和sleep()方法之间的区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板