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

100t空间 做网站分享几个x站好用的关键词

100t空间 做网站,分享几个x站好用的关键词,武汉英文网站建设,网站的虚拟人怎么做的AQS内部属性 state(volatile修饰):为0是标记没有被占用,大于0时表示被其它线程或当前线程占用,对于ReentranLock,state可以大于1,表示多次重入,每次所释放时state减1,直…

AQS内部属性

state(volatile修饰):为0是标记没有被占用,大于0时表示被其它线程或当前线程占用,对于ReentranLock,state可以大于1,表示多次重入,每次所释放时state减1,直至state等于0时释放锁。

head:等待队列的头节点,head后节点为null节点,链表为是双向链表,便于查找前驱和后继节点。

tail:等待队列的尾节点。

exclusiveOwnerThread:持有锁的线程。

AQS使用双向链表的原因

  1. 当某个线程出现异常不需要竞争锁,比如线程被中断了,可以快速移除链表。
  2. 通过lock()竞争锁时,需要不断的判断当前线程的前驱节点是否是head,如果是才能成功获得锁。

ReentrantLock实现原理

ReentrantLock默认使用NonfairSync实现类,NonfairSync和FairSync继承Sync,Sync是一个抽象类。

加锁流程(lock)

加锁成功(tryAcquire)

  1. 如果state=0,通过CAS尝试将state赋值为1,同时设置exclusiveOwnerThread为当前线程。
  2. 如果state!=0,判断exclusiveOwnerThread是否为当前线程,如果是当前线程state+1。

加锁失败(acquireQueued)

  1. (addWaiter)先创建Node节点,放到等待队列尾部。如果是tail节点为null,会先创建一个Dummy节点(空节点),head和tail的引用指向Dummy节点,在创建Node节点,放到等待队列尾部。

node节点如何插入到队列尾部过程

    • 把当前线程的node的prev指向tail
    • 通过cas把node节点设置为新tail
    • 把原tail节点的next指向当前node

  1. (acquireQueued)如果创建的Node节点的前驱节点是head节点,会在尝试一次锁竞争(tryAcquire),竞争失败走3。
  2. (shouldParkAfterFailedAcquire)将前驱节点的waitStatus改为-1,并返回false,再次执行acquireQueued(改成-1的作用是:告知前驱节点有责任去唤醒下一个节点)。
  3. (parkAndCheckInterrupt)阻塞当前线程。

释放锁流程(unlock)

  1. (tryRelease)state-1,当state=0时,设置exclusiveOwnerThread为null,并返回true表示锁释放成功,否则返回false。

  1. (release)判断head!=null&&head.waitStatus!=0,则表明需要唤醒head的后继节点(unparkSuccessor)。
  2. (acquireQueued),被parkAndCheckInterrupt阻塞的线程会继续执行for循环,(tryAcquire)如果竞争成功会设置当前节点为头节点,头节点的下一个节点为null(方便GC)。
  3. (acquireQueued)如果后继节点竞争失败,继续阻塞。

ReentryLock 特性

  1. 支持可重入
  2. 支持阻塞竞争锁和非阻塞竞争锁,lock()和tryLock()
  3. 支持公平和非公平锁
http://www.dtcms.com/wzjs/219705.html

相关文章:

  • 网站做301网站代搭建维护
  • 合肥专业网站制作设计吉林seo基础知识
  • 如何快速用手机做网站小程序开发制作
  • 网站设计方案怎么做厦门百度推广排名优化
  • wordpress 无广告视频网站百度竞价推广怎么样才有效果
  • 网站怎么做数据转移百度搜题网页版入口
  • 网站设计怎么做十大经典口碑营销案例
  • 办公门户网站模板关键词优化好
  • 做网站怎么盈利百度seo最成功的优化
  • 建立门户网站的意义美国seo薪酬
  • 网站编程基础seo标题关键词优化
  • 《学做网站论坛》视频下载互联网精准营销
  • 专业英文网站建设百度网址安全中心
  • 网站建设情况总结镇江交叉口优化
  • 新闻网站建设条件百度竞价点击价格
  • 重庆软件制作淘宝seo是什么意思
  • 威海相亲网站windows优化大师要钱
  • 创意网站 模板百度上怎么做推广
  • 网站的大图传不上去是怎么回事山西seo谷歌关键词优化工具
  • 玄武营销型网站制作厂家百度推广外包
  • 宣传片拍摄报价明细seo优化网站教程百度
  • 承德 网站建设个人网站怎么制作
  • 一流的免费网站建设新闻发布会稿件
  • 合肥网站搭建工作室百度联盟是什么
  • 网站制作公司嘉兴精准营销的典型案例
  • 企业标准版网站建设五年级下册数学优化设计答案
  • nba网站制作运营推广公司
  • 广州交易中心官网宁波seo快速排名
  • 淮南建筑网武汉搜索引擎排名优化
  • 微商怎么引流推广开鲁网站seo转接