Thread的yield()问题

cxfcxf0126 2009-02-11 03:06:33
public class SampleThread{
public static void main(String[] args)throws Exception{
NumberThread nt = new NumberThread("bbbbbbbbbbbbbbb");
nt.start();
Thread.yield();
//Thread.sleep(1);
System.out.println(111111);
System.out.println(222222);
System.out.println(333333);
System.out.println(444444);
}
}
class NumberThread extends Thread{
public NumberThread(String name)
{
super(name);
}
public void run(){
for(int i = 1; i <= 10; i++){
System.out.println("\t"+getName() + ":" + i);
}
}
}
线程调用了yield()方法之后,这个线程是进入阻塞状态,那他是什么时候变成可运行状态的呢?
也就是,当一个线程调用了yield()方法后,是否直接参与争抢CPU运行机会?
...全文
219 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucky373125 2009-02-11
  • 打赏
  • 举报
回复
调用yield()会使当前线程重新回到可执行状态,使得同优先级的线程有执行的机会
gulang76 2009-02-11
  • 打赏
  • 举报
回复
不行

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧