多线程Thread例子的 疑问
小弟今天看了篇关于多线程的文章, 按照文中的例子编写测试运行了下程序,对运行的结果有点疑问,
请各位说说看,为什么在
“创建第【4】个线程!”之后 “线程[3] is running, 线程总数count=1 ” 这里 总数count怎么还等于1呢?前面count的最大值已经累加到等于3了!! count 的值似乎没有什么规律啊,我觉得应该是递增的才对啊
-------------------运行结果如下---------------------------
D:\java\test\thread>java MyThread
创建第【1】个线程!
创建第【2】个线程!
线程[1] is running, 线程总数count=1
创建第【3】个线程!
线程[1] is running, 线程总数count=2
线程[2] is running, 线程总数count=1
创建第【4】个线程!
线程[1] is running, 线程总数count=3
线程[3] is running, 线程总数count=1
线程[2] is running, 线程总数count=2
创建第【5】个线程!
线程[1] is running, 线程总数count=4
线程[4] is running, 线程总数count=1
线程[3] is running, 线程总数count=2
线程[2] is running, 线程总数count=3
线程[1] is running, 线程总数count=5
线程[5] is running, 线程总数count=1
线程[4] is running, 线程总数count=2
线程[3] is running, 线程总数count=3
线程[2] is running, 线程总数count=4
线程[5] is running, 线程总数count=2
线程[4] is running, 线程总数count=3
线程[3] is running, 线程总数count=4
线程[2] is running, 线程总数count=5
线程[5] is running, 线程总数count=3
线程[4] is running, 线程总数count=4
线程[3] is running, 线程总数count=5
线程[5] is running, 线程总数count=4
线程[4] is running, 线程总数count=5
线程[5] is running, 线程总数count=5
---------------------------------------------------
-----------------------原程序如下----------------------------
import java.lang.Thread;public class MyThread extends Thread { int num, count=1; public MyThread(int i){ System.out.println(" 创建第【"+i+"】个线程!"); num = i ; } public void run(){ while(true){ System.out.println("线程["+num+"] is running, 线程总数count="+count); if(++count==6) return; } } public static void main(String[] args) { for(int j=0; j<5; j++){ new MyThread(j+1).start(); } }}