专栏首页Java Life请简述一下线程的sleep()方法和yield()方法有什么区别?

请简述一下线程的sleep()方法和yield()方法有什么区别?

(1)sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会;

(2)线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态;

(3)sleep()方法声明抛出InterruptedException,而yield()方法没有声明任何异常;

(4)sleep()方法比yield()方法(跟操作系统CPU调度相关)具有更好的可移植性。

本文分享自微信公众号 - Java Life(gh_beea63cf3162),作者:剑走天涯

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 请说出你所知道的线程同步的方法

    (2)sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

    剑走天涯
  • 请你解释一下什么是线程池(thread pool)?

    在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销...

    剑走天涯
  • 每天一道面试题 | day12

    在Java 1.4及以下的版本中,每个线程都具有新建、可运行、阻塞、死亡四种状态,但是在Java 5.0及以上版本中,线程的状态被扩充为新建、可运行、阻塞、等待...

    剑走天涯
  • String、StringBuffer、StringBuilder有什么区别?

    String 是 Java 语言非常基础和重要的类, 提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final cla...

    葆宁
  • [深度学习概念]·人脸识别MTCNN解析

    源代码,效果相当不错(只有测试代码): https://kpzhang93.github.io/MTCNN_face_detection_alignment/...

    小宋是呢
  • Java不可重入锁和可重入锁理解

    最近正在阅读Java ReentrantLock源码,始终对可重入和不可重入概念理解不透彻,进行学习后记录在这里。

    哲洛不闹
  • 【图文讲解】TCP为啥要3次握手和4次挥手?握两次手不行吗?

    客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x

    ConardLi
  • 三十天学不会TCP,UDP/IP网络编程 - RST的用法

    不知不觉也写了这么多了,继续我的自己的推广大业~完整版可以去gitbook(https://www.gitbook.com/@rogerzhu/)看到。 如果对...

    一心一怿
  • 云BI研究报告解读,2018年的云BI会走向何方?

    本文主要内容与见解来自于研究公司Dresner Advisory Service最新的《2018年云计算与BI市场研究报告》(2018 Cloud Comput...

    人称T客
  • 2018年云BI市场将何去何从?

    人称T客

扫码关注云+社区

领取腾讯云代金券