问答详情
源自:2-5 Java线程-隋唐演义实战开发---关键先生

为什么后台循环打印了那么多次?不应该只是每个线程这样for(int i=0;i<5;i++)循环5此后就结束吗?

     

http://img3.mukewang.com/5a41bad70001094113380622.jpg

http://img2.mukewang.com/5a41bad9000114c713000615.jpg

//启动线程,让军队开始作战
        armyOfSuiDynasty.start();
        armyOfRevolt.start();
        
        //舞台线程休眠50毫秒,大家专心观看军队厮杀
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        
        armyTaskOfSuiDynasty.keepRunning=false;
        armyTaskOfRevolt.keepRunning=false;

提问者:慕仔1575412 2017-12-26 10:58

个回答

  • 慕瓜7073846
    2018-04-17 15:37:49

    我也不懂他什么时候执行keepRunning=false,,,打印的次数会不会和舞台休眠的时间有关呢?

  • 若如初见1997
    2017-12-28 23:12:05

    你要知道 在ArmyRunnable 类 中 while(keepRunning)  这里是用的while 而不是if,while会一直判断,if只会判断一次,就是你在ArmyRunnable中的初始值!

  • 小林家的mooc
    2017-12-26 11:33:55

    你把农民起义军的代码贴一下呀