java semaphore 是什么(javasemaphore信号怎么样)

技术如何解析Java中的Semaphore信号量本篇文章为大家展示了如何解析Java中的Semaphore信号量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Semaphore

本文向您展示了如何在Java中解析Semaphore。内容简洁易懂,一定会让你大放异彩。希望通过这篇文章的详细介绍,你能有所收获。

信号量(Semaphore)是由计算机科学家迪克斯特拉在1965年提出的。信号量在不同的操作系统中被广泛使用。在管理被提出之前,信号量是并发编程领域的霸主!几乎所有并发语言都支持信号量机制。

旗语也被翻译成信号灯,因为它的机制就像我们日常生活中的红绿灯。红绿灯是用来看车辆的流量,编程世界对应的线程能不能执行就看信号灯了!

信号量用于多线程互斥问题。与synchronized和Lock相比,它允许多个线程访问一个关键部分!比如各种池:数据库连接池、对象池等。这些池的要求是允许多个线程同时使用连接池。

Semaphore的模型可以概括为一个计数器、一个等待队列、三个方法。三个方法原子性分别是init()、down()、up();

Init():设置计数器的初始值。

Down():将计数器的值减少一。如果计数器的值减1后小于0,则阻塞当前线程;否则,继续执行。

Up():给计数器的值加一。如果计数器的值在加1后小于或等于0,则唤醒等待队列中的一个线程,并将其从等待队列中移除。(注意是小于等于0,不应该理解为大于等于0,因为大于等于0表明此时没有等待的线程,所以不会有唤醒这个操作。)

如何解析Java中的Semaphore信号量

简单的理解就是Semaphore就是通过这三个方法来改变计数器,通过计数器的值来判断此时的线程是应该加入到等待队列中等待还是成功执行.

信号量模型也叫PV原语,即down和up操作最初叫P操作和V操作,也有人叫semWait和semSignal。

在JAVA中信号量模型是由 java.util.concurrent.Semaphore 的实现,并且down和up对应的实现方法是acquire和release,让我们看一个简单的使用例子。

如何解析Java中的Semaphore信号量

如果您希望更多的线程进入临界区,请将Semaphore构造函数中的1更改为您想要的线程数。

可以理解为发放许可证。比如你想让三个线程同时进入临界区,那么构造器中的数字会被3填充,也就是说你拿到三个许可证,然后发放出去。获得许可证的人可以进入关键区域。当进入关键区域的线程完成后,它们将返回许可证,然后退出。

信号量中有三个类:同步、非同步和公平同步。

fairSync和fairsync类继承自Sync类,Sync类继承自AbstractQueuedSynchronizer抽象类,即Semaphore是依靠FairSync和FairSync实现的。

如何解析Java中的Semaphore信号量

构造函数可用于指定它是公平锁还是不公平锁。Fair意味着该权限将只按照先到先得的顺序授予等待队列中的线程。不公平是指对于任何一个申请权限的线程,都是第一时间看有没有多余的权限,如果有,就给这个线程。

如何解析Java中的Semaphore信号量

区别在于hasQueuedPredecessors()的存在与否。这个方法是确定当前线程是否是等待队列中的头节点,如果不是,就不分配。

以上内容就是如何在Java中解析Semaphore。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153159.html

(0)

相关推荐

  • 怎么解决使用brew安装yarn后node环境报错问题

    技术怎么解决使用brew安装yarn后node环境报错问题本篇内容主要讲解“怎么解决使用brew安装yarn后node环境报错问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习

    攻略 2021年11月16日
  • 怎么进行Hadoop安装部署

    技术怎么进行Hadoop安装部署这篇文章将为大家详细讲解有关怎么进行Hadoop安装部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.Hadoop环境变量在/home/dbrg/H

    攻略 2021年11月24日
  • 如何使用文档给mongodb写数据(mongodb怎么在可视化上连接服务器)

    技术如何将数据从Web服务处理到MongoDB中本篇内容主要讲解“如何将数据从Web服务处理到MongoDB中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何将数据从Web

    攻略 2021年12月23日
  • xss娉ㄥ叆婕忔礊(XSLT注入漏洞案例分析)

    技术XSLT注入漏洞案例分析这篇文章主要讲解了“XSLT注入漏洞案例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“XSLT注入漏洞案例分析”吧!XSLT注入漏洞,漏洞

    攻略 2021年12月17日
  • 抖音刷赞软件网站,抖音刷赞网站软件平台?

    技术抖音刷赞软件网站,抖音刷赞网站软件平台?发帖让大家最烦恼的事情就是没人看,有赞,有评论,不管发帖多好都没几个人看,白努力,想刷多少都可以,还能上热搜。
    如果单靠抖音自己,没有网红的帮助,或者是团队的领导,或者是一些辅

    测评 2021年11月11日
  • 抖音点赞在线自助平台网站,抖音点赞自助购买平台?

    技术抖音点赞在线自助平台网站,抖音点赞自助购买平台?抖音刷赞自助网站,抖音点赞自助购买平台操作流程,一些大牌厂商也已经入驻,发展前景非常可观,在带来欢乐的同时也成为营销的重要平台,这样一个,又有趣,又能挣钱,路子又正,用

    测评 2021年10月26日