范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

JUC篇ReentrantLock(二)之公平同步队列

  前言
  在《JUC篇-ReentrantLock(一)》中提到了ReentrantLock一些基础使用和源码。从《JUC篇-ReentrantLock(一)》源码中也可以知道new ReentrantLock()获取的是一个非公平同步队列;而本篇主要讲述ReentrantLock的公平同步队列。
  new ReentrantLock(#是否公平的参数)源码分析
  new ReentrantLock(true)    public ReentrantLock(boolean fair) {       //FairSync公平同步       //NonfairSync非公平同步         sync = fair ? new FairSync() : new NonfairSync();     }
  和非公平同步的区别是在于tryAcquire()方法;@ReservedStackAccess protected final boolean tryAcquire(int acquires) {     final Thread current = Thread.currentThread();     int c = getState();     if (c == 0) {       	//和非公平同步的区分在于多加了hasQueuedPredecessors方法判断       	//判断队列中的最前面的节点是否==当前线程,如果是的话,就加锁         if (!hasQueuedPredecessors() &&             compareAndSetState(0, acquires)) {             setExclusiveOwnerThread(current);             return true;         }     }     else if (current == getExclusiveOwnerThread()) {       	//重入次数         int nextc = c + acquires;         if (nextc < 0)             throw new Error("Maximum lock count exceeded");         setState(nextc);         return true;     }     return false; }public final boolean hasQueuedPredecessors() {     Node h, s;     if ((h = head) != null) {         if ((s = h.next) == null || s.waitStatus > 0) {             s = null; // traverse in case of concurrent cancellation             for (Node p = tail; p != h && p != null; p = p.prev) {                 if (p.waitStatus <= 0)                     s = p;             }         }  				//如果队列中存在前节点,且前节点不等于当前线程,       	//则需要等待,返回true         if (s != null && s.thread != Thread.currentThread())             return true;     }     return false; }
  hasQueuedPredecessors方法中有waitStatus状态,下面是官网对waitStatus解释
  Status field, taking on only the values: SIGNAL: The successor of this node is (or will soon be) blocked (via park), so the current node must unpark its successor when it releases or cancels. To avoid races, acquire methods must first indicate they need a signal, then retry the atomic acquire, and then, on failure, block. CANCELLED: This node is cancelled due to timeout or interrupt. Nodes never leave this state. In particular, a thread with cancelled node never again blocks. CONDITION: This node is currently on a condition queue. It will not be used as a sync queue node until transferred, at which time the status will be set to 0. (Use of this value here has nothing to do with the other uses of the field, but simplifies mechanics.) PROPAGATE: A releaseShared should be propagated to other nodes. This is set (for head node only) in doReleaseShared to ensure propagation continues, even if other operations have since intervened. 0: None of the above The values are arranged numerically to simplify use. Non-negative values mean that a node doesn"t need to signal. So, most code doesn"t need to check for particular values, just for sign. The field is initialized to 0 for normal sync nodes, and CONDITION for condition nodes. It is modified using CAS (or when possible, unconditional volatile writes).总结
  公平同步队列是需按照队列中的前后顺序去获取所执行程序。而非公平同步队列则是队列中哪个线程节点获取锁,哪个先执行。
  一天一个java相关小知识。喜欢的同学,可以点赞、关注+收藏,后期还会推出其他框架源码分析。
  如果有需要补充的地方,留言区见。

移远通信正式推出天线产品提供模组天线综合物联网解决方案上海2021年5月18日美通社物联网终端要想实现高效工作,天线是其中非常关键的一环。一直以来,移远通信(上交所股票代码603236)致力于为行业提供更完善更高效的物联网解决方案。目理想ONE新款曝光,尺寸和智能系统升级,价格或提升经常听到网友在一轮造车新势力时,喜欢用低调来形容理想,尤其是每次车展其他品牌纷纷亮剑时,理想都只是默默地不做声。其实并非理想不愿意高调,而是旗下仅有的一款车,虽然销量还不错,但是多中国制造战斗机的一哥,沈飞究竟有多厉害?相信很多人都知道我国有沈飞和成飞两家研发制造歼击机的厂家,最早成立的沈飞可是研发了我国第一款战机歼5战机,不光填补了我国在先进战机的自主研发领域巨大空白,更重要的是沈飞通过研发歼5为什么感觉现在有很多二手iPhone手机呢?现在市面上的二手手机已经非常多,除了苹果,包括华为小米等都非常多。只是苹果手机的市场一直比较稳,在二手市场的份额比较大罢了。那市面上为什么有那么多的二手机苹果手机?为何对苹果二手机拥护撤销买卖的无广告版微信QQ,就要来了有的网友可以一天不打电话,但是不能一天不看微信,微信占有了我们使用手机的大部分的时间,微信已经成为了我们生活的一部分了。关闭所有广告的微信客户端相对于QQ来说,微信的设计逻辑颇为讨腾讯音乐与索尼音乐续签长期版权合作协议腾讯音乐与索尼音乐续签长期版权合作协议中证网讯(记者曹帅)5月18日,腾讯音乐(NYSETME)与索尼音乐共同宣布双方续签长期版权合作授权协议。根据协议,腾讯音乐将继续在其旗下QQ杠上拼多多?腾讯上线自营电商App小鹅拼拼店小鱼本文字数1721字阅读时间约5分钟腾讯再次以自营身份杀入社交电商赛道。在距离腾讯小鹅拼拼周年庆的前几天,腾讯低调上线社交电商App小鹅拼拼,Slogan为享受每一分。这是小鹅拼拼首让IP从批发到零售,区块链降低文创版权交易成本您用越王勾践纹样所设计的环保袋,将在3天后寄送。5月17日,在阿里设计周上,游客设计制作了一个纹样布袋。与普通文创周边不同,这个布袋从生产源头即纹样到制作商家的流程销售数据全程在链重磅,新能源车国家换电标准出台,能彻底解决续航焦虑掐指一算,换电模式作为电池材料未获得巨大进展前的关键技术之一,已经在风口上吹了有5年之久,在这段时间内,换电只能存在于个别车企以及公共交通层级,大规模应用遥遥无期。不过,近日在国家乐视手机高调复活,但背后的生态才是真正大招?点击右上方关注,第一时间获取科技资讯技能攻略产品体验,私信我回复01,送你一份玩机技能大礼包。不久前,乐视在预热新品发布会时卖了一个关子在邀请函上写上我回来了四个大字,同时出现的还声色合和,非凡之境爱普生新一代激光3LCD旗舰智能投影机正式发布近日,爱普生在主题为声色合和投号玩家的新品发布会上,与腾讯视频极光TV跨界联合推出了爱普生新一代EF12EF10激光智能投影机。此次爱普生最新打造的3LCD旗舰智能投影产品,搭载了
MGONE全球首秀,运动潮流标签越嗑越上头蓄过的力是此刻的光,这句奥运名言,很适合奥运期间亮相首款智潮科技SUVMGONE的名爵。7月30日,MGONE在上海油罐艺术中心全球首秀。该车是诞生于上汽智能全球模块化架构SIGM演员罢演后,会影响我们生活吗?国内的演员明星作为公众人物,有着千万上亿身价有众多为之疯狂的粉丝。为何在此时被国人所痛斥?是仇富还是嫉妒?从明星吸毒被层出不穷的被爆出再到婚内出轨偷税漏税请问,作为公众人物,你得社缺芯的蝴蝶效应车企焦虑,买家着急,二手车商成赢家芯片,汽车江湖中,当之无愧的硬通货。从去年年末开始,汽车领域就一直处在芯片危机当中,直到如今,汽车芯片短缺的问题也没能得到有效的解决。如今,一份因缺芯停产的名单正在不断上新,除了大回归个寂寞?全新斯巴鲁BRZ,能拯救斯巴鲁市场几何?它来了,但没完全来。9月8日,斯巴鲁中国官方微博宣布,新一代斯巴鲁BRZ将回归中国市场,首批商品车预计于2022年3月底之后开始陆续交车。值得注意的是,斯巴鲁官方表示,由于需要遵守黄缘闭壳龟饲养指南(一)黄缘龟即将崩盘?新手如何上手?各位朋友们,大家好,我是瑞克小暴。这一期呢,我要来分享一下黄缘闭壳龟的饲养心得。黄缘闭壳龟,俗名黄缘盒龟。外表靓丽,举止可爱,性格外向,互动积极。在中国历史文明发展过程中有着极高的枫叶龟饲养指南枫叶龟很美,可惜红颜薄命各位朋友们,大家好,我是瑞克小暴。今天要带给大家的是一种让玩家们心情复杂的龟类。它们有着美丽的外表,胆小的性格,举手投足间洋溢着精致而独特的气质,但同时也伴随着脆弱无力的气息。它们佛鳄龟饲养指南鳄龟是人类文明的见证者,如今却沦为了菜肴佛鳄龟全称佛州拟鳄龟,又称小鳄龟拟鳄龟平背鳄龟,属鳄龟科是很凶猛的食肉龟种,头颈部有众多凸起的尖刺,长相霸气,原分布在美国佛罗里达州南乔治亚州。而在早期的宠物龟市场上,与其形成抗衡龟龟在哪儿买?花鸟市场已经成为过去,买龟有门道,啥龟都有各位朋友们,大家好,我是瑞克小暴。今天这一期内容,是专门针对入门级玩家准备的,因为这个问题不向广大初级玩家解释清楚,小暴要累死啊。小暴出了那么多期视频,收到了不少玩家的私信留言,其黄缘闭壳龟饲养指南(二)黄缘龟饲养环境大盘点各位朋友们,大家好,我是瑞克小暴。上一期的黄缘饲养篇对这种龟类的习性进行了介绍,由于篇幅受限,想在一两期内就将这个龟之国宝分析透彻是不可能的。所以从这一期开始,我将对这一龟种的各个地产二代再不努力,就只能被爹坑了儿子公司欠钱,父亲公司紧急撇清关系26岁上位,接下的不是亿万家产,而是千亿债务如今的地产二代们,一不小心就背锅了。本文由无冕财经(wumiancaijing)原创发布作者陈欣苗编辑2000万地产白条难兑现,谁能叫停这场击鼓传花的游戏?某头部房企还欠我们2000万没有兑付完,商票逾期拒付,致使公司破产,工人工资未发,部分地产开发商资金链紧缺,导致商票频频暴雷,房企商票产业链正面临危险。本文由无冕财经(wumian