Java-并发篇-07-(公平锁-非公平锁)_Alan0517的博客-程序员宅基地_java 非公平锁

技术标签: java  Java-并发篇  

公平锁
是指多个线程照申请锁的顺序来获取锁类似排队打饭 先来后到
非公平锁
是指在多线程获取锁的顺序并不是照申请锁的顺序,可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,可能造成优先级反转或者饥饿现象
公平锁/非公平锁
并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁 默认是非公平锁
在这里插入图片描述
Java ReentrantLock而言,
通过构造函数指定该锁是否是公平锁 默认是非公平锁 非公平锁的优点在于吞吐量比公平锁大.
对于synchronized而言 也是一种非公平锁.

ReentrantLock实现Lock接口

默认是非公平锁

 /**
     * Creates an instance of {@code ReentrantLock}.
     * This is equivalent to using {@code ReentrantLock(false)}.
     */
    public ReentrantLock() {
    
        sync = new NonfairSync();
    }
    
    
     public ReentrantLock(boolean fair) {
    
            sync = fair ? new FairSync() : new NonfairSync();
        }
        
        
如果  Lock r=new ReentrantLock(true);传入参数true,就是公平锁,没传默认false

公平锁  是指多个线程照申请锁的顺序获取锁,类似于排队
非公平锁 是指多个线程获取锁的顺序不是照申请锁的顺序,可能会造成优先级反转或者饥饿现象

非公平锁的点在于吞吐量比公平锁大

Synchroniezd也是一种非公平锁
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Hmj050117/article/details/112547922

智能推荐

指针(初)_yyyyeahhhhhh的博客-程序员宅基地

指针本章重点指针是什么指针和指针类型指针和数组名指针运算指针和数组二级指针指针数组什么是指针?指针是编程语言中的一个对象,利用地址,他的值直接指向存在电脑存储器中另一个地方的值。由于通过地址就能找到所需的变量单元,可以说,地址指向该变量单元,因此将地址形象化的称为指针。#include<stdio.h>int main(){ int a = 10; /...

MySQL内置函数研究_S.wa的博客-程序员宅基地

MySQL内置函数研究一、学习sql注入涉及函数1.字符串截取函数函数式示例结果mid(string,start,len)mid(‘xinanzhilu’,3,2)naleft(string,n)left(‘abc’,2)absubstring(string,start,len)substring(‘abcd’,a,2)bcsubstr(string,start,len)substr(‘abcde’,3,2)cd2.字符串连接函数

【微信小程序】小茶书项目_西西歪歪西歪的博客-程序员宅基地

1. app.json代码:"pages":["pages/home/home","pages/auction/auction","pages/promulgate/promulgate","pages/news/news","pages/mine/mine","pages/index/index","pages/logs/logs","pages/redirect/redirect","pa...

Windows Update 的工具_weixin_34216036的博客-程序员宅基地

Windows Update MiniTool 是一款管理 Windows Update 的工具,可以取得微軟 Windows 修補程式更新包,Windows Update 是我們用來升級系統的元件,透過它來更新我們的系統,能夠擴展系統的功能,讓系統支援更多的軟、硬體,解決各種相容性問題,讓系統更安全、更穩定。Windows Update MiniTool 可以管理更新下載和安裝,對更新模式進行控...

Ubuntu 20.04 通过 docker 安装 微信 和 QQ、修改字体大小_努力努力在努力丶的博客-程序员宅基地

参考安装参考:[2020.11.4亲测有效] 手把手教你在Ubuntu 20.04上通过docker安装微信和QQ调整字体参考:Ubuntu20.04 wechat和qq 字体太小,乱码 #启动 微信复制以下脚本到linux_dck_wechat.sh#!/bin/bashecho "docker pull ..."sudo docker pull bestwu/wechatecho "docker run ..."sudo docker run -d --name wechat

从服务器加载图片显示在前端,在SSM框架中使用ajax实现照片图片上传到服务器、显示以及选择图片以后在前端显示的功能..._weixin_39875503的博客-程序员宅基地

实现功能:添加一个学生,该学生信息包括我的图片,图片上传到服务器上,数据库保存图片的文件名,在查看学生列表时能够看到图片,同时在选择要上传的图片以后能够直接在前端显示。html实现效果:在选择图片以后,点击上传照片,将图片上传到服务器上,而后点击保存,将学生的全部信息保存到数据库中前端 实现过程(前端使用easyui框架):ajax一、添加学生信息同时实现图片上传功能以及选择图片文件以后及时在前端...

随便推点

java mongodb 大于_解决MongoDB 排序超过内存限制的问题_有栖部羅援時的博客-程序员宅基地

对集合执行一个大排序操作(如聚合),出现以下错误:(测试版本:MongoDB 3.0.6)> db.bigdata.aggregate({$group : {_id : "$range", total : { $sum : 1 }}},{$sort : {total : -1}});#...aggregate failedat Error ()at doassert (src/mongo/s...

弹性盒子经典模型_奔跑的DIV的博客-程序员宅基地

见源代码: <div class="box"> <div class="sonbox">1</div> <div class="sonbox">2</div> <div class="sonbox">3</div> <div class="sonbox">4</div> <div class="sonbox">5</div> <di.

odex转dex总结_木棉的___的博客-程序员宅基地

在安卓系统所谓系统文件在哪cd /system/appls可以看到好多apk 啊还有xx.odex如果想移到别的手机安装他们1把odex转dex2打包apk3签名第一步下载jar文件 链接传送http://dl.dbank.com/c0jp4oax7t#http://dl.vmall.com/c0rky

【iOS】—— 获取设备唯一标识_西邮郭富城的博客-程序员宅基地_ios获取设备唯一标识

一、UDID(Unique Device Identifier)UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它由40位16进制数的字母和数字组成(越狱的设备通过某些工具可以改变设备的UDID)。移动网络可利用UDID来识别移动设备,但是,从IOS5.0(2011年8月份)开始,苹果宣布将不再支持用uniqueIdentifier方法获取设备的UDID,iOS5以下是可以用的。苹果从iOS5开始就移除了通过代码访问UDID的权限。从2013年5月1日起

canvas加载gif_weixin_30709809的博客-程序员宅基地

http://ernestdelgado.com/public-tests/gifoncanvas/<!DOCTYPE html><html><head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Animate...

推荐文章

热门文章

相关标签