线程的sleep()方法和yield()方法的区别:
1、sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级的线程以运行的机会;
2、线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态;
3、sleep()方法声明抛出InterruptedException,而yield()方法没有声明任何异常;
4、sleep()方法比yield()方法(跟操作系统CPU调度相关)具有更好的可移植性。
sleep()方法和wait()方法的区别:
1、这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。
2、锁:最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或方法。
3、使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。
线程的sleep()方法和yield()方法的区别,sleep()方法和wait()方法的区别
最新推荐文章于 2022-05-20 12:02:22 发布