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

yield问题

请问老师以及各位大神,就这个程序而已,加入yield方法跟没加效果应该是一直的吧,在隋军以及农民军各自运行的for循环里面,本来就应该发生资源的争抢,即:当隋军运行完i=1时,这个时间就有可能农民军线程获取到了资源,从而开始i=1。不知我的理解是否正确,请指教。谢谢!

正在回答

2 回答

你的意思是执行结果的交替,但是在线程执行中,是通过cpu分配时间进行的交替运行的

0 回复 有任何疑惑可以回复我~

不是这样的,即使不加入yield方法,线程也会在CPU分配的时间到了之后会进行让步,比如说CPU让这个线程能执行5ms,时间到了这个线程就一定会发生让步操作,而加入了yield方法后,同样cpu让这个线程可以执行5ms,但是5ms内执行到了yield方法,线程就会执行让步操作,而不会等到5ms完才执行让步操作

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
深入浅出Java多线程
  • 参与学习       186068    人
  • 解答问题       502    个

带你一起深入浅出多线程,掌握基础,展望进阶路线

进入课程
微信客服

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

帮助反馈 APP下载

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

公众号

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