java1000线程与此同时启动

java1000线程同时启动
/****



/**

*

*jdk 1.6

*

*/

public class DaoTest implements Runnable{



public static final int THEADS_MAX = 1000;



public static int THREAD_COUNT = 0;



public static byte[] syn = new byte[0];



public static long flag = 0;



public static void main(String[] args) {



//to do someting



//循环启动并发线程

for(; THREAD_COUNT< THEADS_MAX;THREAD_COUNT++){

new Thread(new DaoTest()).start();

}



// to do someting

}



@Override

public void run() {

synchronized (syn) {

try {

if(THREAD_COUNT<THEADS_MAX-1){//每个线程执行到此处暂停,并释放syn的对象锁

syn.wait();

}else{//最后一个线程启动后不再暂停,而是唤醒所有等待的线程,一起往下执行

  //其实由于单核cpu不能真正地同时往下执行,而是为每个线程分配时间片轮训执行

  //但是由于时间片很小,可以看作并发了

syn.notifyAll();

}



} catch (InterruptedException e) {

//to do someting

}



}

for(int i = 0; i<1000; i++){

// to do someting

System.out.println(flag++);

}

}

}