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