敢问这个程序是怎么结束的吗?

来源:2-4 Java线程-隋唐演义实战开发---军队

BreadCrumb

2015-06-29 00:14

敢问这个程序是怎么结束的吗?我看不到哪里是结束语句,按理说他是个无限循环的啊!!

写回答 关注

4回答

  • Zhenyu1990
    2015-11-15 20:34:15

    个人理解为在Stage类的run()中

    armyOfSuiDynasty.start();
    armyOfRevolt.start();

    之后的

    try {
        Thread.sleep(50);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    这句代码起到了作用,也就是说在两军交战的50ms之内stage线程处于休眠不会参与到对处理器的竞争中,而50ms的休眠时间过后,stage线程参与竞争处理器使用,将keepRunning设为false,结束军队的两个线程。

    不知理解的对不对,还请指正。


  • 慕设计0462085
    2015-07-08 19:47:26

    在单核机器中,可以那么理解,主线程休眠了,其他线程获得资源运行。但是现在电脑都是多核。可以同时,不是以前基于单核分片执行。Thread.sleep(100);就是当前线程睡眠0.1秒,

    qq_老表_...

    当前线程休眠了 那为什么线程内的 线程还可以运行呢?(如隋军,起义军) 舞台{隋军,起义军} 舞台包含了隋军,和起义军 为什么舞台都休眠了 隋军和起义军的线程还在继续运行呢?

    2016-03-24 00:16:45

    共 3 条回复 >

  • 那知归不归
    2015-06-29 21:44:19

    这个是线程休眠,等待0.1s后线程再执行,如果遇见异常就抛出。

  • BreadCrumb
    2015-06-29 00:19:32

    try {

    Thread.sleep(100);

    } catch (InterruptedException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }


    这个事件是控制主线程的吗?也就是main这个线程,当主线程休眠的时候,也就是其他线程运行的时间?想了很久,只能只能理解了,初学者,不知道对不对!!!?

深入浅出Java多线程

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

186088 学习 · 464 问题

查看课程

相似问题