为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问在Java中yield()方法该怎么使用呢?

你好,请问在Java中yield()方法该怎么使用呢?

慕娘9325324 2022-01-06 17:07:53
import java.lang.Thread;//让出CPU,给其他进程执行机会public class ThreadTest6_Yield{public static void main(String[] args){MyThread3 t1 = new MyThread3("A-----");MyThread3 t2 = new MyThread3("B=====");t1.start();t2.start();}}class MyThread3 extends Thread {MyThread3(String s){super(s);}public void run(){for(int i=1;i<=100;i++){System.out.println(getName()+" : "+i);if(i%10==0)yield();}}}这段代码运行的结果为什么不是10个A和10个B交叉输出呢?
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

Thread.yield( )方法:
使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执行态里选择,也就是说,刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会执行其他线程了。

查看完整回答
反对 回复 2022-01-10
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

你好,线程调度是有操作系统控制的,不是轮询的,可以加入线程优先级控制

查看完整回答
反对 回复 2022-01-10
  • 2 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号