多线程之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原理