Thread中sleep,wait,yield,setPriority学习心得

Thread中控制线程暂停的三种重要方法就是sleep,wait和yield。对于三种方法的特点和用法,我在这里做了总结。

sleep()

Thread.sleep()是暂停线程的常用方法,该方法必须指定暂停时长,并在暂停结束后自动醒来。当然,在sleep的过程中,也有方法直接唤醒线程,具体请问度娘。sleep函数的参数可以是(毫秒)或者(毫秒,纳秒)。

wait()

wait方法本属于object类。要使用wait方法,当前对象必须拥有即锁(monitor),因此当前对象必须在synchronized块或synchronized方法中。至于为什么wait方法不交给Thread,是因为一个线程可能包含多个object,多个object都可能被锁住,如果交给Thread处理会更加麻烦。使用wait方法的对象,需要再次使用notify或notifyAll方法唤醒。

yield()

yield方法的一种翻译是线程让步,也就是当前线程作出转让cpu资源的暗示。在执行yield方法后,cpu会从众多可执行状态中选择,也就是说当前线程可能暂停,也可能在继续执行。yield方法所做的只有作出转让cpu资源的暗示。具体参考Java Thread.yield详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值