yield和sleep 区别
yield和sleep对比
sleep | yield |
---|---|
sleep会导致当前线程暂停指定的时间,没有CPU时间片的消耗。 | yield只是对CPU调度器的一个提示,如果CPU调度器没有忽略这个提示,它会导致线程上下文的切换。 |
sleep会使线程短暂block ,会在给定的时间内释放CPU资源。 | yield会使RUNNING 状态的Thread进入RUNNABLE 状态(如果CPU调度器没有忽略这个提示的话) |
sleep几乎百分之百地完成了给定时间的休眠 ,而yield的提示并不能一定担保。 | sleep几乎百分之百地完成了给定时间的休眠,而yield的提示并不能一定担保。 |
一个线程sleep另一个线程调用interrupt会捕获到中断信号 ,而yield则不会。 | 一个线程sleep另一个线程调用interrupt会捕获到中断信号,而yield则不会。 |
-----------------------------------------------------------------------------读书笔记摘自书名:Java高并发编程详解:多线程与架构设计 作者:汪文君