sleep()与wait()

来源:互联网 发布:用vb编写简单小游戏 编辑:程序博客网 时间:2024/06/08 06:22

两者的区别主要有以下几个方面:

1. 概念层面。sleep()方法会让正在执行的线程主动让出CPU,而不会释放同步资源锁。指定时间之后,重新获得CPU之后,该线程继续往下执行。而wait()方法让当前线程让出同步资源锁,以便其他线程获得资源而运行,只有调用notify()方法,才会解除wait状态,可以去参与竞争同步资源锁。

2. 应用范围。sleep()方法可以用在任何地方,而wait()方法只能用在同步方法或者同步块中。

3.继承范畴。sleep()是Thread类中的方法,wait()是object类中的方法,当调用时会释放对象锁,进入等待队列,待调用notify()和notifyAll()唤醒指定线程或者所有线程,才会进入锁池。

原创粉丝点击