1. 程式人生 > >java併發包&執行緒池原理分析&鎖的深度化

java併發包&執行緒池原理分析&鎖的深度化

在這裡插入圖片描述

將不安全的map集合轉成安全集合

HashMap HashMap = new HashMap<>();
Collections.synchronizedMap(HashMap);

concurrentHasMap 開發推薦使用這種map———執行緒安全且效率高

在這裡插入圖片描述

CountDownLatch

在這裡插入圖片描述

public class Test002 {

	public static void main(String[] args) throws InterruptedException {
	   CountDownLatch countDownLatch = new CountDownLatch(1);
		new Thread(new Runnable() {
			public void run() {
				System.out.println("我是子執行緒開始執行任務......");
				try {
					//子執行緒正在處理事情
					Thread.sleep(10);
				} catch (Exception e) {
					// TODO: handle exception
				}
				countDownLatch.countDown();//每次減1
				System.out.println("我是子執行緒開始執行任務......");
			}
		}).start();;
		new Thread(new Runnable() {
			public void run() {
				System.out.println("我是子執行緒開始執行任務......");
				try {
					//子執行緒正在處理事情
					Thread.sleep(10);
				} catch (Exception e) {
					// TODO: handle exception
				}
				countDownLatch.countDown();//每次減1
				System.out.println("我是子執行緒開始執行任務......");
			}
		}).start();;
		countDownLatch.await();//如果不為0的時候,一致等待
		System.out.println("主執行緒開始執行任務");
		for (int i = 0; i < 10; i++) {
			System.out.println("main i:"+i);
		}
	}

}