开发者社区> 问答> 正文

线程的sleep()方法和yield()方法有什么区别?

线程的sleep()方法和yield()方法有什么区别?

展开
收起
游客pklijor6gytpx 2019-12-02 15:57:29 1601 0
1 条回答
写回答
取消 提交回答
  • sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会;

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

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

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

    2019-12-02 15:58:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载