当前位置: 首页 > news >正文

学校网站建设计划wordpress后台经常504

学校网站建设计划,wordpress后台经常504,h5做的网站,wordpress文章调用代码ReentrantLock 的实现原理主要涉及到两个关键概念#xff1a;同步器#xff08;Sync#xff09;和 AQS#xff08;AbstractQueuedSynchronizer#xff0c;抽象队列同步器#xff09;。 ReentrantLock 使用 AQS 来实现可重入锁的机制。AQS 是 Java 并发包中的一个抽象基类…ReentrantLock 的实现原理主要涉及到两个关键概念同步器Sync和 AQSAbstractQueuedSynchronizer抽象队列同步器。 ReentrantLock 使用 AQS 来实现可重入锁的机制。AQS 是 Java 并发包中的一个抽象基类为实现锁和其他同步器提供了一种统一的框架。ReentrantLock 则是基于 AQS 提供的框架实现的。 以下是 ReentrantLock 的主要实现原理 1. AQS 的状态 AQS 内部维护一个状态变量用来表示被保护资源的状态。对于 ReentrantLock 来说状态值表示当前锁被持有的次数。当状态为0时表示锁未被持有大于0时表示锁已被某个线程持有。 2. 同步器Sync的实现 ReentrantLock 的内部实现继承了 AQS并提供了两个具体的实现类NonfairSync 和 FairSync分别对应非公平锁和公平锁。 NonfairSync在尝试获取锁时不考虑其他线程是否在等待队列中等待锁直接尝试获取。FairSync在尝试获取锁时会优先考虑等待时间最长的线程以实现公平性。 3. AQS 的队列 AQS 使用一个双向链表作为等待队列将请求锁但未能成功获取的线程加入队列。队列中的节点代表等待线程。 4. 获取锁的流程 当一个线程尝试获取锁时如果锁的状态为0则表示锁未被持有线程可以直接获取锁并将状态设置为1。如果锁的状态不为0表示锁已经被其他线程持有此时线程将被加入等待队列并被挂起直到锁被释放。当持有锁的线程再次尝试获取锁时AQS 会判断当前线程是否已经持有锁。如果是直接增加状态值如果不是则将该线程加入等待队列。 5. 释放锁的流程 当一个线程释放锁时AQS 会将状态值减1。如果状态值为0表示锁已经完全释放此时会唤醒等待队列中的下一个线程。如果状态值不为0表示锁仍然被持有此时直接减少状态值。 6. 实现可重入性 ReentrantLock 的实现允许同一个线程多次获取锁这是通过在节点中维护一个记录线程持有次数的变量来实现的。线程持有锁时增加该变量释放锁时减少该变量。只有当该变量减到0时才表示锁完全被释放。 ReentrantLock 通过 AQS 提供的队列和状态管理机制实现了可重入锁的机制保证了锁的正确性和灵活性。不同的实现类NonfairSync和FairSync在获取锁的策略上有所区别分别支持非公平锁和公平锁。
http://www.pierceye.com/news/374572/

相关文章:

  • 誉铭摄影网站网页布局设计技术包括
  • 专门做定制化的网站成都网站推广技巧
  • 有啦域名网站怎么做北京织梦网站建设
  • 公司网站后台怎么添加内容asp网站gzip压缩
  • app浏览器源码大全网站广州网站建设 .超凡科技
  • 免费做网站的方法h5手机网站怎么做
  • 郑州营销型网站制作运营随州网站seo诊断
  • 怎么修改网站备案信息外国的网站是什么网站
  • 小企业网站建设多少钱软件免费下载的网站大全
  • 免费承接网站建设公司网站备案资料
  • 深圳微信网站制作免费加盟一件代发货源网站
  • 青岛外贸网站建站公司东莞市专业的网页设计制作报价
  • 长沙网站设计工作室wordpress手机分享插件下载地址
  • 网站开发用什么图片格式最好网站数据库搬家
  • 宜宾建设网站企业所得税税负率
  • 广州网站二级等保上海企业网站模板
  • 做任务赚话费的网站网站直播间 是怎么做的
  • 合肥住房城乡建设部的网站传媒公司是干嘛的
  • 网站建设公司盈利深圳保障性住房在哪里申请
  • 网站建设(信科网络)谷歌推广怎么开户
  • 活动策划网站有哪些温州网页设计美工
  • 网站描述代码怎么写做正规小说网站
  • 无锡外贸网站制作公司php网站开发薪资 深圳
  • 做卡盟网站赚钱吗为企业制定网络营销方案
  • lol视频网站模板网站定制案例
  • 海兴县网站建设郑州嵌入式培训机构
  • 网站建设怎么记账韩国 电商网站
  • 公司介绍网站怎么做的网站建设的广告语
  • 茂名网站建设托管阿里云 wordpress主机名
  • 投票活动网站怎么做郑州营销型网站制作教程