yield问题

来源:2-5 Java线程-隋唐演义实战开发---关键先生

慕数据8483959

2019-02-24 15:14

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

写回答 关注

2回答

  • qq_慕圣2566072
    2019-06-20 11:00:15

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

  • 小岛农场主
    2019-05-06 23:18:38

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

深入浅出Java多线程

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

186068 学习 · 472 问题

查看课程

相似问题