简要记录java 锁

Java中的锁机制主要分为LockSynchronized.

Synchronized在JVM里的实现是基于进入和退出Monitor对象来实现方法同步和代码块同步的。monitorenter指令是在编译后插入到同步代码块的开始位置,而monitorexit是插入到方法结束处和异常处,JVM要保证每个monitorenter必须有对应的monitorexit与之配对。任何对象都有一个monitor与之关联,当且一个monitor被持有后,它将处于锁定状态。线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor的所有权,即尝试获得对象的锁。

锁升级

Java 1.6为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁”,在Java SE 1.6中,锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。

锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁。这种锁升级却

不能降级的策略,目的是为了提高获得锁和释放锁的效率。

AQS

 Lock底层是基于AQS同步器(AbstractQueuedSynchronizer)的,AQS是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作,并发包的作者(Doug Lea)期望它能够成为实现大部分同步需求的基础,事实上目前的JDK并发包都是基于AQS来完成同步需求的。

其是由一个同步状态+FIFO的同步队列组成,提供了同步队列、独占式同步状态获取与释放、共享式同步状态获取与释放以及超时获取同步状态等同步器的核心数据结构与模板方法。简单来说就是,当线程需要阻塞时就将其放到同步队列中,等到该唤醒时就将其移除队列并唤醒,使其继续工作.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/1502.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java循环结构

Java中有三种主要的循环结构: while 循环do…while 循环for 循环 在Java5中引入了一种主要用于数组的增强型for循环。 1.while循环 语法: while(布尔表达式){ // 循环内容 } 复制 实例: public class Demo{ public static void main(S…

【数据库】MySQL 高级(进阶) SQL 语句

文章目录 前提条件一、常用查询1. SELECT(显示查询)2. DISTINCT(不重复查询)3. WHERE(有条件查询)4. AND/OR(且/或)5. IN (显示已知值的字段)6. BETWEEN&…

适合嵌入式开发的GUI(嵌入式学习)

嵌入式开发的GUI如何选择? 常见的嵌入式GUI开发方法轻量级GUI库优缺点 基于Web技术优缺点 Qt框架优缺点 原生开发优缺点 嵌入式系统的限制 常见的嵌入式GUI开发方法 嵌入式开发中的GUI(图形用户界面)是指在嵌入式系统中实现图形化的用户界面…

深度学习05-RNN循环神经网络

概述 循环神经网络(Recurrent Neural Network,RNN)是一种具有循环连接的神经网络结构,被广泛应用于自然语言处理、语音识别、时序数据分析等任务中。相较于传统神经网络,RNN的主要特点在于它可以处理序列数据&#xf…

【软件设计师暴击考点】下午题高频考点暴击系列

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件…

亚马逊测评:如何有效使用IP和养号设备环境

随着网络科技的崛起,越来越多的本土企业入驻亚马逊电子商务平台上,这导致了对产品评价需求的激增。然而,评价并非随意进行,它需要多方面的资源,并需要密切注意一些重要环节。以下是我分享给大家一些宝贵的知识&#xf…

TCP/IP 协议详解

文章目录 简介应用层传输层网络层网络接口层数据包发送过程TCP 三次握手四次挥手三次握手为什么是三次握手四次挥手为什么是四次挥手 简介 TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。 TCP/IP传输…

第八十五天学习记录:C++核心:内存分区模型

内存分区模型 C程序在执行时,将内存大方向划分为4个区域 1、代码区:存放函数体的二进制代码,由操作系统进行管理 2、全局区:存放全局变量和静态变量以及常量 3、栈区:由编译器自动分配释放,存放函数的参数…

霍尔闭环电流传感器在电动观光旅游车上的应用

摘要:本文介绍了基于霍尔闭环原理,即磁平衡式原理的电流传感器在电动观光旅游车上的使用方法,替代传统的霍尔器件,较好的解决了电动车行业现有霍尔传感器的基本问题,在稳定性上更加优越。 关键词:霍尔闭环…

微信小程序——实现蓝牙设备搜索及连接功能

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

计算机网络——数据链路层

序言 问:数据链路层在现在的社会起到什么作用? 答:数据链路层在现在的社会起到关键性作用,比如:数据传输和通信;网络连接和互联互通;错误检测和纠正;媒体访问控制;网络性…

【图像处理】植物叶识别和分类

一、说明 这是国外某个学生团队尝试用机器学习方法对植物叶进行识别分类的实验。实验给出若干张植物叶图片,针对这些图片,对特征进行测量、提取、重组,最后用机器学习方法实现;该具备一定的参考价值。 现在是我们将图像处理学习应…