1 个回答

第一,从线程优先级来说,yield()方法只会给相同优先级或者更高优先级的线程运行机会;但是,sleep()方法给其他线程运行机会时不考虑线程的优先级,因此也会给优先级低的线程运行的机会。
第二,从运行后状态来说,运行yield()方法之后,当前线程会重新回到可执行状态,所以执行yield()方法后,那个线程有可能又马上被执行;但是,如果执行sleep()方法后,线程会转入阻塞状态,所以,执行sleep()方法的线程在指定的时间内肯定是不会被执行的。
第三,从抛出异常来说,yield()方法没有声明任何异常;而sleep()方法声明抛出InterruptedException。
第四,从可移植性上来说,sleep()方法比yield()方法具有更好的可移植性。
发布于:3年前 (2022-10-23) IP属地:未知
我来回答
您需要 登录 后回答此问题!