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++);

}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值