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

生成前端页面的网站自己如何制作网页

生成前端页面的网站,自己如何制作网页,为知笔记如何导入wordpress,专业网站建设ReentrantLock 的实现原理主要涉及到两个关键概念:同步器(Sync)和 AQS(AbstractQueuedSynchronizer,抽象队列同步器)。 ReentrantLock 使用 AQS 来实现可重入锁的机制。AQS 是 Java 并发包中的一个抽象基类…

ReentrantLock 的实现原理主要涉及到两个关键概念:同步器(Sync)和 AQS(AbstractQueuedSynchronizer,抽象队列同步器)。

ReentrantLock 使用 AQS 来实现可重入锁的机制。AQS 是 Java 并发包中的一个抽象基类,为实现锁和其他同步器提供了一种统一的框架。ReentrantLock 则是基于 AQS 提供的框架实现的。

以下是 ReentrantLock 的主要实现原理:

1. AQS 的状态:

AQS 内部维护一个状态变量,用来表示被保护资源的状态。对于 ReentrantLock 来说,状态值表示当前锁被持有的次数。当状态为0时表示锁未被持有,大于0时表示锁已被某个线程持有。

2. 同步器(Sync)的实现:

ReentrantLock 的内部实现继承了 AQS,并提供了两个具体的实现类:NonfairSyncFairSync,分别对应非公平锁和公平锁。

  • NonfairSync:在尝试获取锁时,不考虑其他线程是否在等待队列中等待锁,直接尝试获取。
  • FairSync:在尝试获取锁时,会优先考虑等待时间最长的线程,以实现公平性。

3. AQS 的队列:

AQS 使用一个双向链表作为等待队列,将请求锁但未能成功获取的线程加入队列。队列中的节点代表等待线程。

4. 获取锁的流程:

  • 当一个线程尝试获取锁时,如果锁的状态为0,则表示锁未被持有,线程可以直接获取锁,并将状态设置为1。
  • 如果锁的状态不为0,表示锁已经被其他线程持有,此时线程将被加入等待队列,并被挂起,直到锁被释放。
  • 当持有锁的线程再次尝试获取锁时,AQS 会判断当前线程是否已经持有锁。如果是,直接增加状态值;如果不是,则将该线程加入等待队列。

5. 释放锁的流程:

  • 当一个线程释放锁时,AQS 会将状态值减1。
  • 如果状态值为0,表示锁已经完全释放,此时会唤醒等待队列中的下一个线程。
  • 如果状态值不为0,表示锁仍然被持有,此时直接减少状态值。

6. 实现可重入性:

ReentrantLock 的实现允许同一个线程多次获取锁,这是通过在节点中维护一个记录线程持有次数的变量来实现的。线程持有锁时,增加该变量;释放锁时,减少该变量。只有当该变量减到0时,才表示锁完全被释放。

ReentrantLock 通过 AQS 提供的队列和状态管理机制,实现了可重入锁的机制,保证了锁的正确性和灵活性。不同的实现类(NonfairSyncFairSync`)在获取锁的策略上有所区别,分别支持非公平锁和公平锁。

http://www.dt0577.cn/news/26469.html

相关文章:

  • 网站免费虚拟空间武汉网站seo推广公司
  • 济阳县做网站公司seo免费诊断
  • wap网站格式怎样做电商 入手
  • 旅游网站设计报告海东地区谷歌seo网络优化
  • wordpress退出登录界面seo 推广教程
  • wordpress资源下载模板网站的排名优化怎么做
  • 设计软件免费下载官方网站百度快速收录提交工具
  • 一级a做爰全过程片视频网站浙江网站建设制作
  • 网站建设论文开题报告范文药品销售推广方案
  • 太原公司网站建立新浪nba最新消息
  • 做网站怎么学沈阳专业seo排名优化公司
  • 济宁网站建设济宁网站快速收录
  • 网站keyword如何排序企业品牌推广方案
  • 1534939978姐的微信德惠市深圳高端seo外包公司
  • wordpress主题付费吗绍兴seo推广公司
  • 网站建设服务费用2021小说排行榜百度风云榜
  • 山东德州网站建设哪家便宜网站推广如何做
  • 文字堆积网站seo推广如何做
  • 现在还做响应式网站吗目前最火的自媒体平台
  • 旅游网站的导航怎么做百度快照是什么
  • 做地方门户网站如何做百度页面
  • python做网站服务器关键词上首页的有效方法
  • 免费微信建站有哪些网站itme收录优美图片官网
  • 佛山哪有网站建设公司关键词你们都搜什么
  • 网站首页全屏怎么做微博推广怎么做
  • 为学校网站建设纯注册app拉新挣钱
  • 中国移动无线网管理软件福州专业的seo软件
  • 如何修改自己的网站标题网络推广费计入什么科目
  • 能够做二维码网站seo站长助手
  • wordpress 404重写系统优化app最新版