(1)sleep和yield都是Thread类的静态方法,都会使当前处于运行状态的线程放弃CPU,但两者的区别在于:
sleep给其它线程运行的机会,但不考虑其它线程的优先级;但yield只会让位给相同或更高优先级的线程;
当线程执行了sleep方法后,将转到阻塞状态,而执行了yield方法之后,则转到就绪状态;sleep方法有可能抛出异常,而yield则没有;
在一般情况下,我们更建议使用sleep方法。
(2)join方法用于等待其它线程结束,当前运行的线程可以调用另一线程的join方法,当前运行线程将转到阻塞状态,直至另一线程执行结束,它才会恢复运行。
本文对比分析了sleep和yield两种线程调度方法的区别,并介绍了join方法的用途。sleep方法会将线程置于阻塞状态,而yield方法会使线程回到就绪状态;sleep方法不考虑线程优先级而yield方法只让相同或更高优先级的线程运行;sleep可能抛出异常而yield不会。
456

被折叠的 条评论
为什么被折叠?



