java信号量_Semaphore

他是一个线程同步结构,用于在线程之间通讯,就像加了一把锁一样,防止我们的信号消失(保护这块区域)。

Semaphore是J.U.C包下的一个类。多个线程可以通过他进行共享资源。它内部维护了一个计数器(计数器表示同时访问的最大访线程数)。然后还有两个重要方法。

acquire()  ; 当我们进行访问资源时的时候我们会进行对那个计数器-1; (计数器必须要大于等于0)再去访问资源

release() ; 当我们访问完了资源需要退出的时候。这个方法要在finally里面写。

 

另外逼逼一下: Semaphore里面有一个属性Sync 。这个属性继承自AQS,所以它上面那个技术器的做法大家也就不陌生了。

 

信号量这个东西不难,就是限制对某段代码执行的线程数。其中就是公平信号量和非公平信号量,这也是为什么里面出现的这些AQS,公平信号量就是那些没有获得到进入许可的线程会进入一个等待队列里面。而非公平队列会进入一个等待池里面。

 

关于信号量的使用,可以去网上看。很多。不难

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值