**Java sleep() 和yield()方法区别**
java 学习线程总结
1.sleep() 方法暂停当前线程,给其他线程执行机会。不关心其他线程的优先级;但是yield()方法只会给优先级相同,或者优先级更高的线程执行机会。
2.sleep()方法会将线程转入阻塞状态,直到经过阻塞时间才会转入就绪状态;而 yield()方法不会转入阻塞状态他会强制把线程转入就绪状态,这导致某个方法调用yield()方法后立即再次获取到CPU资源而再次执行。
3. sleet()方法会抛出InterruptedException 异常,调用该方法要捕获异常或者抛出。但是yield()方法没有异常处理。
4. sleep()方法有更好的移植性,通常不建议使用yield()方法来控制并发线程的执行。