什么是java非公平锁

技术什么是java非公平锁这篇文章主要介绍“什么是java非公平锁”,在日常操作中,相信很多人在什么是java非公平锁问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是java非公平锁”

本文主要介绍“什么是java不公平锁”。在日常操作中,相信很多人都对什么是java不公平锁有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“什么是java不公平锁”的疑惑!接下来,请和边肖一起学习!

1.不公平的锁不能保证锁是按照请求锁的顺序获得的。这可能会导致一个或一些线程永远得不到锁。

2.CPU唤醒线程的成本可以降低,整体吞吐效率会很高。但是,可能会有线程长时间甚至永远得不到锁,从而导致饥饿。

实例

/**

* Syncobjectfornon-fair lock

*/

staticfinalclasofairsyncextendssync {

privatedstationfinalloseriveversiuid=7316153563782823691 l;

/**

*执行扫描。尝试立即插入,恢复正常

*acquireonfailure。

*/

final void lock(){ 0

if(compareAndSetState(0,1))

setExclusiveOwnerThread(thread . currentthread());

其他

获得(1);

}

protected innalbooleantryacquire(intacquires){ 0

returnnonfairTryAcquire(获取);

}

}

/**

* Syncobjectforfairlocks

*/

staticfinaclassfairsynextendssync {

privatedstationfinalloseriveversiuid=nbsp

;-3000897897090466540L;
 
        final void lock() {
            acquire(1);
        }
 
        /**
         * Fair version of tryAcquire.  Don't grant access unless
         * recursive call or no waiters or is first.
         */
        protected final boolean tryAcquire(int acquires) {
            final Thread current = Thread.currentThread();
            int c = getState();
            if (c == 0) {
                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;
        }
    }

到此,关于“什么是java非公平锁”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

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

(0)

相关推荐

  • ios-xr如何配置PBB-EVPN

    技术ios-xr如何配置PBB-EVPN这篇文章给大家分享的是有关ios-xr如何配置PBB-EVPN的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。配置l2vpn
    bridge group

    攻略 2021年11月21日
  • 初二二次根式计算题,二次根式比较大小[初二]?

    技术初二二次根式计算题,二次根式比较大小[初二]?对于这样的比较大小,因为都是正数,可以直接利用初二二次根式计算题:A2(A平方,以下类同)>B2 等价于 A>B
    (A+B)2>(C+D)2等价于(A+B)>(C+D).

    生活 2021年10月23日
  • 【2021-11-29】连岳摘抄

    技术【2021-11-29】连岳摘抄 【2021-11-29】连岳摘抄23:59如果你热爱工作,你每天就会尽自己所能力求完美,而不久,你周围的每一个人也会从你这里感染到这种热情。——山姆·沃尔顿人不想学

    礼包 2021年12月1日
  • 民族团结小故事100字,民族团结小故事450字

    技术民族团结小故事100字,民族团结小故事450字中国巾帼英雄第一人冼夫人她的生平被载入籍《二十五史》的《隋书》、《北史》和《资治通鉴》民族团结小故事100字。她的英雄形象依然深深地刻在中国人民心中,被陈、隋皇朝敕封为“

    生活 2021年10月29日
  • Locust:简介和基本用法

    技术Locust:简介和基本用法 Locust:简介和基本用法我个人在性能测试工作中,负载生成工具使用的大多都是jmeter,现在来看看locust,因为可以用python编写脚本,进行定制化,而我自己

    礼包 2021年11月29日
  • 熟络是什么意思,你觉得“自来熟”是好事吗

    技术熟络是什么意思,你觉得“自来熟”是好事吗当今社会社交十分重要,因为现在社会是一个配合的社会,不是单打独斗的社会,很多事情都要配合来完成,因此良好的社交能力就非常重要,有的人很外向,不管见到谁都立刻表现的很熟络,也就是

    生活 2021年10月29日