信号量

信号量:

    可以使用信号量来限制访问一个共享资源的线程数。

    信号量指对共同资源进行访问控制的对象。在访问资源之前,线程必须从信号量获取许可。在访问完资源之后,这个线程必须将许可返回给信号量。

    为了创建信号量,必须确定许可的数量,同时可炫耀公平策略。

   java.util.concurrent.Semaphore

  +Semaphore(numberOfPermits: int)    创建一个具有指定书目的许可信号量。公平性策略参数为假。

  +Semaphore(numberOfPermits: int, fair:boolean)  创建一个具有指定数目的许可及公平性策略的信号量

  +acquire():void  从该信号量获取一个许可。如果许可不可用,线程将被阻塞,知道一个许可可用

  +release():void  释放一个许可返回给信号量

   

只有一个许可的信号量可以用来模拟一个相互排斥的锁。

原文地址:https://www.cnblogs.com/taiguyiba/p/7456009.html