解决方案 »

  1.   

    你多运行几次观察结果,while循环这里的代码是在主线程中的,它优先级要比其它两个高,其他两个线程刚刚运行会稍后一点,因为主线程正在占用CUP资源,此时还没有与及时分配资源给其它两个线程,建立虽然多线程是并行的,但是在抢占CUP资源上会有一个先后的等待队列的,当然这种队列是微观上的,宏观上不影响多线程并行的特性。综上所述,楼主这种情况就是主线程正处于活跃状态,占用了CUP资源,导致其他两个线程没有及时运行,lz可以试试在主线程的while循环中让线程休眠一下,如Thread.sleep(100);不要直接这样打印,频率太高了。
      

  2.   

    这就是线程的奇妙之处,该程序中存在三个线程,Main、t1、t2,其中Main的优先级别高于其他两个,所以它抢占的资源级别比他两都高,即会出现该结果,楼主多次运行后可能会出现不同的结果,就是因为在人为不控制的情况下,线程运行是没规律的!!