黑马程序员技术交流社区
标题: 帮我解释一下yield是干什么, [打印本页]
作者: 328078121 时间: 2013-8-30 20:04
标题: 帮我解释一下yield是干什么,
本帖最后由 328078121 于 2013-8-30 23:20 编辑
帮我解释一下yield是干什么,据我现在了解的答案是停止当前线程将执行权给同一级线程,等同一级线程全运行完之后在运行,它的作用就是释放执行权,是自己处于冻结状态,请大神们解释一下,一定要带程序,在网上搜出好几种答案,都没实现,因此一定要带代码
作者: 月黑风高 时间: 2013-8-30 20:34
不知道如何使用,是吗?
Thread.yield()
暂停当前正在执行的线程对象,并执行其他线程。
也就是说多个线程中假如其中一个线程执行到了这句代码,它就让出了执行权,等其他的线程执行完毕,自己在执行。
作者: 月黑风高 时间: 2013-8-30 20:35
不知道如何使用,是吗?
Thread.yield()
暂停当前正在执行的线程对象,并执行其他线程。
也就是说多个线程中假如其中一个线程执行到了这句代码,它就让出了执行权,等其他的线程执行完毕,自己在执行。
作者: wumuzhong 时间: 2013-8-30 21:56
package test;
class MyThread implements Runnable{
public void run(){
for(int i=0;i<5;i++){
try{
Thread.sleep(500) ;
}catch(Exception e){}
System.out.println(Thread.currentThread().getName()
+ "运行,i = " + i) ;
if(i==2){
System.out.print("线程礼让:") ;
Thread.currentThread().yield() ;
}
}
}
};
public class YieldDemo{
public static void main(String args[]){
MyThread my = new MyThread() ;
Thread t1 = new Thread(my,"线程A") ;
Thread t2 = new Thread(my,"线程B") ;
t1.start() ;
t2.start() ;
}
};
作者: hoyouly 时间: 2013-8-30 22:17
yield(): 暂停当前正在执行的线程对象,并执行其他线程。减缓线程的执行频率从而能达到线程都能平均运行的效果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |