模拟线程并发

模拟线程并发

并发包下的 java.util.concurrent.CountDownLatch
CountDownLatch 当这个变量不是0时,对应的线程进入堵塞状态,当着个变量为0 时,线程会接着往下执行(原子操作)

现模拟2000个线程,并发执行操作

package com.lcw;

import java.util.concurrent.CountDownLatch;

public class ThreadDemo {
	private static Integer TheardCount =2000;
	
	static CountDownLatch cld1 = new CountDownLatch(TheardCount);
	
	static CountDownLatch cld2 = new CountDownLatch(TheardCount);
	

	public static void main(String[] args) throws InterruptedException {
		
		long start =System.currentTimeMillis();
		for (int i = 0; i < TheardCount; i++) {
			Thread a =new Thread(new MyRunnable());
			a.start();
			// cld1减一
			cld1.countDown();
		}	
		//让主线程进入堵塞状态
		cld2.await();
		long end =System.currentTimeMillis();
		System.out.println(end-start+" 毫秒");
	}
	
public static class MyRunnable implements Runnable{	
		
		@Override
		public void run() {
			
			try {
				cld1.await();
				//让2000个线程进入堵塞
				System.out.println("模拟并发");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			//修改 cld2 -1
			cld2.countDown();
		}
	}

}


如果使指定的线程优先执行有如下几种方法()
1.使用CountDownLatch计数,(run方法的执行顺序)
1.使用join();
3.使用wait();
4.使用线程锁,notify();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值