军队线程中yield

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

心中的愤怒就像龙咆哮

2016-08-03 09:20

    public void run() {
        // TODO Auto-generated method stub
        while (keepRunning) {
            for (int i = 0; i < 5; i++) {
                System.out.println(Thread.currentThread().getName() + "进攻了"
                        + i);
            }
//            Thread.yield();
        }
        System.out.println(Thread.currentThread().getName() + "进攻结束!");
    }

当我把yield放在for循环外,或者是注释屏蔽,两个军队线程依旧会是混战,连击,yield要不要效果都一样

写回答 关注

1回答

  • qq_依米_15
    2016-08-03 10:42:13

    它只是让当前线程进入就绪状态。调用后所有线程重新抢夺资源

    心中的愤怒就...

    但是我把它放在for循环外,他应该5次输出之后再进入就绪状态,而我的结果是它执行了随机次就被别的线程抢占了

    2016-08-03 23:00:27

    共 1 条回复 >

深入浅出Java多线程

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

186088 学习 · 464 问题

查看课程

相似问题