• 技术文章 >java >java基础

    java不同锁模式下的插队探究

    小妮浅浅小妮浅浅2021-07-09 09:50:11原创3562

    1、ReentrantReadWriteLock 可以设置公平锁模式和非公平锁模式。

    // 公平锁模式
    ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
    //非公平锁模式 默认情况
    ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(false);

    在获得公平锁之前,先检查readerShouldBlock()方法,在获得写锁之前,先检查writerShouldBlock()方法,然后再决定是排队还是插队。

    2、非公平锁模式下, writerShouldBlock()和readerShouldBlock()实现

    final boolean writerShouldBlock() {
        return false; // writers can always barge
    }
    final boolean readerShouldBlock() {
        return apparentlyFirstQueuedIsExclusive();
    }

    非公平锁可以在获得写锁时插队。读锁时使用策略决定。

    以上就是java不同锁模式下的插队探究,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java 锁
    上一篇:java线程池关闭的方法 下一篇:java怎么从键盘输入一个数

    相关文章推荐

    • python怎么实现输错三次密码之后锁定• mysql如何锁表• mysql怎么查询表是否被锁• mysql如何查看表锁信息• python使用互斥锁处理资源分配• Python死锁的产生原因• Python获取GIL锁的流程• java内置锁的可重入性• java使用JConsole检测死锁• java线程池死锁的产生及处理• java并发模型中的两种锁• java中死锁是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网