java面试题网

普通会员

265

帖子

9

回复

179

积分

楼主
发表于 2018-03-21 18:46:44 | 查看: 834| 回复: 2

   (1)所在类不同:wait( )是Object类中的方法;sleep( )是Tread类中的方法;

   (2)slepp( )没有释放同步锁,而wait( )释放了同步锁;

   (3)slepp( )必须制定时间,而wait( )不用;

   (4)slepp( )可以在任何地方使用,而wait( )、notify( )、notifyAll( )只能在同步方法或同步代码块中使用;

   (5)slepp( )必须捕获异常,而wait( )、notify( )、notifyAll( )不用;



普通会员

0

帖子

19

回复

27

积分
沙发
发表于 2019-02-26 16:53:42

wait()是object类中的方法 而sleep()是thread里面的方法 sleep必须设置时间  比如:sleep(1000)

普通会员

216

帖子

75

回复

160

积分
板凳
发表于 2019-05-05 14:23:00
Java线程中,sleep()和wait()区别

答:sleep是线程类(Thread)的方法;作用是导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复;调用sleep()不会释放对象锁。

wait是Object类的方法;对此对象调用wait方法导致本线程放弃对象锁,进入等 待此对象的等待锁定池。只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池,准备获得对象锁进行运行状态。

您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018