我们知道Thread.sleep(Long arg)方法会使当前线程休眠(暂停执行),但是当线程休眠结束一定会执行这个线程吗?答案:不一定
这里有两种情况:
1.该线程结束休眠时cpu正在被别的线程使用,无法立即使用,当这个线程使用完自己的时间片时,那么刚才 被休眠的线程会立即被执行吗?也是不一定,这个休眠的线程‘复活’过来和其他的线程一样,也要进行抢夺cpu,抢到了就执行,没有抢到就继续等待,直到自己抢到。
2.该线程结束休眠时刚好cpu空闲,那么也是不一定该线程一定会被立即执行,同样,该线程需要自己参与抢夺cpu,能抢到就执行,没抢到就继续等待。