> import java.util.concurrent.BlockingQueue;
> import java.util.concurrent.ExecutorService;
> import java.util.concurrent.Executors;
> import java.util.concurrent.LinkedBlockingQueue;
~~~
public class Main {
public static void main(String[] args){
//內存緩沖區
BlockingQueue<Data> queue = new LinkedBlockingQueue<Data>(10);
//生產者
Provider p1 = new Provider(queue);
Provider p2 = new Provider(queue);
Provider p3 = new Provider(queue);
Consumer c1 = new Consumer(queue);
Consumer c2 = new Consumer(queue);
Consumer c3 = new Consumer(queue);
//創建線程池,這是一個緩存的線程池,可以創建無窮大的線程,沒有任務的時候不創建線程,空閑線程存活的時間為60s。
ExecutorService cachepool = Executors.newCachedThreadPool();
cachepool.execute(p1);
cachepool.execute(p2);
cachepool.execute(p3);
cachepool.execute(c1);
cachepool.execute(c2);
cachepool.execute(c3);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
p1.stop();
p2.stop();
p3.stop();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
~~~
- 序
- 求職路
- 筆試準備
- Huawei題庫
- 劍指Offer
- 面試準備
- Java技術棧
- 設計模式
- Java框架
- Spring
- SpringBoot
- SpringCloud
- SpringMVC
- Spring基礎
- ORM
- Hibernate
- MyBatis
- 分布式
- 分布式計算
- 分布式存儲
- 消息隊列
- 消息中間件
- 生產者消費者
- Provider
- Data
- Consumer
- Main
- 校招宣講招聘會
- 哈工大九月
- 數據庫
- MySQL
- Redis
- 面試經歷
- Alibaba
- 第二面-Alibaba
- 第一面-Alibaba
- Xiaomi
- Xiaomi一面
- Xiaomi二面
- Yonyou
- Yonyou一面+HR
- Huawei
- Huawei一面
- Huawei二面
- 一個小結
- 工作路
- 萬里長征第一步
- Huawei簽約
- 技術路
- 開源之路
- 初試探
- 技術棧
- 編程語言
- OpenCV
- 從Java 和C++玩轉OpenCV
- 第一章
- 介紹
- 第一節