多线程之Semaphore详解

Posted 程序猿小亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程之Semaphore详解相关的知识,希望对你有一定的参考价值。

上篇博客我们详细的介绍了一下CyclicBarrier,这篇博客我们详细的介绍Semaphore。

文章目录

什么是Semaphore

semaphore从字面含义理解是信号量,它是JUC包中比较常用的一个类,它也是AQS共享模式的一个实现。信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制。利用它可以很好地实现流程控制。利用Semaphore可以实现各种池,例如:Hystrix的semaphore模式就是利用它实现。

Semaphore实例讲解

我们模式一个停车场停车信号,假设停车场只有3个空的停车位,现在有5辆车要停车。一开始3个车位都是空的,这时如果同时来了3辆车,看门人允许它们进入停车场,然后放下车拦。以后来的车必须在入口等待,直到停车场中有车辆离开。这时,如果有一辆车离开停车场

以上是关于多线程之Semaphore详解的主要内容,如果未能解决你的问题,请参考以下文章

JUC并发编程 共享模式之工具 JUC Semaphore(信号量) -- Semaphore原理

java多线程之Concurrent.Utils常用类Semaphore详解

Java并发多线程编程——Semaphore

线程同步之信号量

JDK1.8 信号量(Semaphore)的基本使用

JDK1.8 信号量(Semaphore)的基本使用