前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一分钟知识】线程同步,线程调度

【一分钟知识】线程同步,线程调度

作者头像
java思维导图
发布2018-03-15 15:09:21
5470
发布2018-03-15 15:09:21
举报
文章被收录于专栏:java思维导图java思维导图

sleep()和yield()方法区别

  • 1
    • sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;
    • yield()方法只会给相同优先级或更高优先级的线程以运行的机会;
  • 2
    • 线程执行sleep()方法后转入阻塞(blocked)状态,
    • 而执行yield()方法后转入就绪(ready)状态;
  • 3
    • sleep()方法声明抛出InterruptedException,
    • 而yield()方法没有声明任何异常;
  • 4
    • sleep()方法比yield()方法(跟操作系统CPU调度相关)具有更好的可移植性。

线程同步以及线程调度相关的方法

  • wait()
    • 使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁;
  • sleep()
    • 使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理InterruptedException异常;
  • notify()
    • 唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关;
  • notityAll()
    • 唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java思维导图 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档