10、线程相关

Thread.sleep()、Thread.wait() 和Thread.yield()的区别

Thread.yield() 会将当前线程暂时让位一小段时间,让其它的线程有机会运行,过了这段时间后,该线程继承运行。上述功能也可以用Thread.sleep()方法实现。

Object.wait() 和Thread.yield()有什么区别

1)定义上   wait()   的启动办法是notify()   和   notifyAll()方法;yield()会自动切换回来。   
2)wait() 方法是object的所以他只停止了current   Thread   的一个锁,这可能产生的结果就是如果还有锁锁着其他threads那么那些thread可就惨了,所以要慎用; yield()   主要用在自行判断优先级的场合,是一个主动的暂停。3)wait()将所有资源让出来,等得到通知后在参加资源竞争,yield()将cpu资源让出来但 马上就参加cpu资源竞争。

 

答案 :sleep 是线程类 (Thread) 的静态方法 , 导致此线程暂停执行指定时间,给执行机会给其他
线程,但是监控状态依然保持,
到时后会自动恢复。调用 sleep 不会释放对象锁。 wait() 是 Object 类的方法,对此对象调用 wait
方法导致本线程放弃对象锁,进入等待
此对象的等待锁定池,只有针对此对象发出 notify 方法 ( 或 notifyAll) 后本线程才进入对象锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值