yield()暂时交出 cpu 控制权,从 running 状态转为 runnalbe 状态,但是仍有 可能被调度,sleep()线程指定休眠一段时间,wait()在其他线程调用此对 象的 notify()或 notifyAll()方法时才能继续执行。
线程中 sleep()方法和 yeild()方法的主要区别:
1.sleep()方法会给其他线程运行的机会,而不管其他线程的优先级,因此会给较 低优先级的线程运行的机会;yeild()方法只会给优先 级相同的或者比自己高的线程运行的机会.关于选项C,当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行。这个在没有基于优先级抢占的系统里面是错误的,因为不存在抢占。在有基于优先级抢占的系统里面是对的。但是现在的系统基本都是有基于优先级抢占的,不抢占的那只是出现在课本里。
正确答案: B E版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u013630349/article/details/47679687