也就是说主线程的代码执行到第一个for,要将for执行完才会接着往下执行第二个for马

解决方案 »

  1.   

    对于main线程来水,是第一个for执行完才会执行第二个for
    对于第一个for的new线程来说,执行顺序是随机的,和main线程的顺序没关系,第二个for的new线程也一样
    至于盖伦的血量为什么会和想象的结果不一样,首先因为上面说的new线程执行是随机的,其次是因为盖伦变量没有加锁同步,所以你后来的join,也许在join之前线程就执行结束了,所以盖伦的血量就是不可控
      

  2.   

    也就是说主线程的代码执行到第一个for,要将for执行完才会接着往下执行第二个for马
    对的,是这样的
      

  3.   

    线程的执行取决于CPU,不是你代码的顺序,两个JOIN部分,估计代码还没有执行到哪个地方,线程都执行完了,要想获得预期效果,就在你盖伦血量控制的地方进行同步