① sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会;
② 线程执行sleep()方法后转入阻塞( blocked)状态, 而执行yield()方法后转入就绪( ready)状态;
③ sleep()方法声明抛出InterruptedException,而yield()方法没有声明任何异常;
④ sleep()方法比yield()方法(跟操作系统CPU 调度相关)具有更好的可移植性。
本文探讨了Java中sleep()与yield()方法的区别:①sleep()不考虑优先级,yield()只让相同或更高优先级的线程运行;②sleep()使线程进入阻塞状态,yield()使其回到就绪状态;③sleep()声明抛出InterruptedException,而yield()没有;④sleep()具有更好的可移植性。
① sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会;
② 线程执行sleep()方法后转入阻塞( blocked)状态, 而执行yield()方法后转入就绪( ready)状态;
③ sleep()方法声明抛出InterruptedException,而yield()方法没有声明任何异常;
④ sleep()方法比yield()方法(跟操作系统CPU 调度相关)具有更好的可移植性。
3394
5018

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