Semaphore解析
一、Semaphore解析
1.1 解析
Semaphore:訊號量主要用於兩個目的,一個是用於多個共享資源的互斥使用,另一個用於併發執行緒數的控制。
1.2 爭車位Demo
public class SemaphoreDemo {
public static void main(String[] args) {
//模擬3個停車位
Semaphore semaphore = new Semaphore(3);
//模擬6部汽車
for (int i = 1; i <= 6; i++) {
new Thread(() -> {
try {
semaphore.acquire();
System.out.println(Thread.currentThread().getName() + "\t搶到車位");
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "\t停車3秒後離開車位");
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
semaphore.release();
}
}, String.valueOf(i)).start();
}
}
}
相關文章
- Semaphore原始碼解析原始碼
- Semaphore最詳細解析
- 深入淺出Semaphore原始碼解析原始碼
- Semaphore訊號量原始碼解析原始碼
- CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的詳細解析CountDownLatch
- Java併發之Semaphore原始碼解析(一)Java原始碼
- Java併發之Semaphore原始碼解析(二)Java原始碼
- Semaphore
- Java併發包原始碼學習系列:同步元件Semaphore原始碼解析Java原始碼元件
- java原始碼-SemaphoreJava原始碼
- Semaphore原始碼分析原始碼
- Java併發包5--同步工具CountDownLatch、CyclicBarrier、Semaphore的實現原理解析JavaCountDownLatch
- 併發工具類——Semaphore
- GCD(四) dispatch_semaphoreGC
- Semaphore 使用&核心原理 圖解圖解
- Java多執行緒——SemaphoreJava執行緒
- InnoDB: Warning: a long semaphore waiAI
- 10. Semaphore ||(訊號量)
- dispatch_semaphore網路應用
- Java併發系列—工具類:SemaphoreJava
- CyclicBarrier、CountDownLatch與Semaphore的小記CountDownLatch
- 淺談synchronized、Lock、ThreadLocal和semaphoresynchronizedthread
- Java併發(6)- CountDownLatch、Semaphore與AQSJavaCountDownLatchAQS
- 併發模擬-程式碼CountDownLatch,SemaphoreCountDownLatch
- 原始碼分析:Semaphore之訊號量原始碼
- CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析CountDownLatch
- Java併發之CountDownLatch、CyclicBarrier和SemaphoreJavaCountDownLatch
- Semaphore vs. Mutex 簡單區別Mutex
- 第 57 期 sync/semaphore 原始碼淺析原始碼
- Semaphore-訊號量的實現分析
- Java 併發工具類 CountDownLatch、CyclicBarrier、Semaphore、ExchangerJavaCountDownLatch
- java多執行緒系列:Semaphore和ExchangerJava執行緒
- 面試官:說說CountDownLatch,CyclicBarrier,Semaphore的原理?面試CountDownLatch
- iOS GCD (四) dispatch_semaphore 訊號量iOSGC
- 併發工具類:Semaphore原始碼解讀原始碼
- Java併發工具類(訊號量Semaphore)Java
- Java併發程式設計系列之Semaphore詳解Java程式設計
- Java多執行緒同步工具類之SemaphoreJava執行緒