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
- Semaphore使用案例
- Java併發包原始碼學習系列:同步元件Semaphore原始碼解析Java原始碼元件
- java原始碼-SemaphoreJava原始碼
- Semaphore原始碼分析原始碼
- 呵呵,Semaphore,就這?
- Java併發包5--同步工具CountDownLatch、CyclicBarrier、Semaphore的實現原理解析JavaCountDownLatch
- 併發工具類——Semaphore
- GCD(四) dispatch_semaphoreGC
- 10. Semaphore ||(訊號量)
- Semaphore 使用&核心原理 圖解圖解
- Java併發系列—工具類:SemaphoreJava
- 淺談synchronized、Lock、ThreadLocal和semaphoresynchronizedthread
- 高併發之Semaphore、Exchanger、LockSupport
- 併發模擬-程式碼CountDownLatch,SemaphoreCountDownLatch
- CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析CountDownLatch
- Java併發(6)- CountDownLatch、Semaphore與AQSJavaCountDownLatchAQS
- 原始碼分析:Semaphore之訊號量原始碼
- 併發-6-wait、notify、Semaphore、CountDownLatch、CyclicBarrierAICountDownLatch
- Semaphore-訊號量的實現分析
- iOS GCD (四) dispatch_semaphore 訊號量iOSGC
- 併發工具類:Semaphore原始碼解讀原始碼
- java多執行緒系列:Semaphore和ExchangerJava執行緒
- 第 57 期 sync/semaphore 原始碼淺析原始碼
- Java 併發工具類 CountDownLatch、CyclicBarrier、Semaphore、ExchangerJavaCountDownLatch
- 我們們來聊聊併發工具類Semaphore
- 大白話說java併發工具類-Semaphore,ExchangerJava
- 面試官:說說CountDownLatch,CyclicBarrier,Semaphore的原理?面試CountDownLatch
- Java多執行緒同步工具類之SemaphoreJava執行緒
- iOS 關於dispatch_semaphore_t 同步執行iOS
- Redisson 分散式鎖原始碼 11:Semaphore 和 CountDownLatchRedis分散式原始碼CountDownLatch