1、Thread.sleep()与Thread.yield()都会暂缓当前线程执行,转为执行其他线程(忽略优先级),如果持有锁,则不会释放。
2、Thread.sleep()可以精确指定休眠的时间,而Thread.yield()依赖于CPU的时间片划分。
3、Thread.sleep()会抛出中断异常,且能被中断,而Thread.yield()不可以。
4、join()方法是挂起调用线程的执行,直到被调用对象完成它的执行,可以用来指定线程执行的顺序。
5、wait()方法是属于Object类的,会释放当前锁,进入线程池等待,必须通过调用notify()/notifyAll()方法来重新唤醒线程。