线程中的yield()问题!

hohona 2003-04-06 08:19:51
程序如下:
class Test extends Thread{
public void run(){
System.out.println("1");
yield();
System.out.println("2");
}

public static void main(String args[]){
Test t=new Test();
t.start();
}
}
输出结果为:
1
2
yield()不起作用,为什么?
...全文
23 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyqiang 2003-04-06
  • 打赏
  • 举报
回复
yield()
Causes the currently executing thread object to temporarily pause and allow other threads to execute

对你没有感觉到线程时的确没有用
java的程序最大在于他基于起点与别的语言不同
yanglei031 2003-04-06
  • 打赏
  • 举报
回复
yield();是在一个线成主动放弃对cpu的占用,如果此后没有另一个线成占有cpu的话,这个线成将继续占有cpu。

哈哈,这是我的看法。
li_haizhou 2003-04-06
  • 打赏
  • 举报
回复
yield使当前进程释放CPU资源,并使相同优先级的进程获得执行的机会。
你指使用一个线程是看不到yield发生作用的情况的,应该使用两个进程来测试
CrazyHippo 2003-04-06
  • 打赏
  • 举报
回复
yield()只是放弃当前cpu时间片的继续执行机会,而不是被kill掉!
hohona 2003-04-06
  • 打赏
  • 举报
回复
原来是这样,多谢各位的热情解答!

62,614

社区成员

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

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