【java面经thinking】四

目录

悲观锁synchronized

synchronized的用法

只能锁引用类型

对象的内存布局(引用型)

JDK1.6之前的锁----重量级锁

1.6之后---偏向锁,轻量级锁(自适应自旋锁)

偏向锁

轻量级锁

区别

某些场景使用重量级锁的原因

synchronized是不公平锁

synchronized的原子性、可见性与有序性

参考博客

悲观锁synchronized

悲观锁就是觉得所有线程的操作都是不安全的,所以会直接给每个线程加上锁。

悲观锁性能较低。

synchronized的用法

java内置关键字,只能作用于方法与代码块,不能作用于变量。

只能锁引用类型
对象的内存布局(引用型)

数组类型

JDK1.6之前的锁----重量级锁

有等待队列,进入等待队列(即阻塞状态),唤醒缓慢

1.6之后---偏向锁,轻量级锁(自适应自旋锁)
偏向锁

轻量级锁

由偏向锁升级而来的

区别

所以,重量级锁就是,a取锁,b进队列,b阻塞,浪费资源。

自旋锁就是,a取锁,b自旋循环,n次挂起。

自适应自旋锁就是,a取锁,b自旋循环,b取锁,c就自旋更长时间;

若b自旋不成功,c直接放弃。

某些场景使用重量级锁的原因

运气不好的线程,自旋是要消耗cpu资源的,cpu资源很昂贵

synchronized是不公平锁

synchronized的原子性、可见性与有序性

内存具有不可见性。

解决了不可见性:

当进入synchornized保护的代码前,将同步代码中用到的共享资源在缓存中清楚,在使用时,直接从主存拉取,在退出同步代码块前,直接将对共享资源的操作更新至主存,这样就保证了内存的可见性。

参考博客

面试干货9——synchronized的底层原理_synchronized底层原理面试题-CSDN博客

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

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

相关文章

电脑基础知识:mfc110.dll丢失的解决方法

1.mfc110.dll 丢失常见原因 mfc110.dll 文件的丢失或损坏是Windows系统中常见的问题,它可能由多种原因引起,以下是一些主要的因素: 不完全的软件卸载 在卸载程序时,如果相关的 DLL 文件没有被正确移除,可能会导致文件…

ASP.NET Core8.0学习笔记(二十二)——单向导航属性

一、单向导航属性引入 1.双向导航属性存在的问题:数据库中存在一些“基础表”,这些表会被其他各种表来引用。比如有一张User表,另有请假表(请假人、审批人)、采购表(采购员、审核员)等多个表的…

H-TCP 的效率和公平性

昨晚带安孩楼下玩耍,用手机 desmos 作了一组 response curve 置于双对数坐标系: 长肥管道的优化思路都很类似,cwnd 增长快一点: BIC TCP:二分查找逼近 capacity;CUBIC TCP:上凸曲线逼近 capa…

C++ -string -常见用法4

博客主页:【夜泉_ly】 本文专栏:【C】 欢迎点赞👍收藏⭐关注❤️ 文章目录 💡前言💡字符串操作1.c_str 、data -重点⭐1.1函数原型1.2用法 2.copy2.1函数原型2.2用法2.3注意事项 3.find、rfind -重点⭐3.1函数原型3.2用…

华山论剑之Rust的Trait

华山论剑,群雄荟萃,各显神通。武林中人,各有所长,或剑法飘逸,或掌法刚猛,或轻功绝顶。这就好比Rust中的trait,它定义了一种武功套路,而不同的门派、不同的人,可以将这套武…

分布式篇(分布式事务)(持续更新迭代)

一、事务 1. 什么是事务 2. 事务目的 3. 事务的流程 4. 事务四大特性 原子性(Atomicity) 一致性(Consistency) 持久性(Durability) 隔离性(Isolation) 5. MySQL VS Oracle …

016_基于python+django网络爬虫及数据分析可视化系统2024_kyz52ks2

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

IE11删除hao360主页

欲删 hao.360.com,hao360.mainshe.com 主页,必先删除注册表键: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\EUPP HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main "Start Page" "Default_Pag…

87. 多边形轮廓Shape(圆弧)

先掌握上节课关于Shape内容,再继续学习本节课关于Shape圆弧的介绍。 圆弧方法.arc() 圆弧方法.arc()使用方式和原来学习过的圆弧曲线ArcCurve整体相似,区别在于圆心定位方式有差异。 圆弧.arc()参数的圆心坐标是相对当前.currentPoint而言,而不是坐标原…

斜视角,视角和入射角

注意分辨率中的2 在;雷达的径向,分辨率(时间)就是脉冲宽度/2

SAP 控制生产订单发料数量不能超过生产订单预留数量

SAP 控制生产订单发料数量不能超过生产订单预留数量 业务场景前台操作1、创建生产订单---CO012、生产订单发料---MIGO3、系统后台配置业务场景 正常生产订单进行投料的根据生产订单组件进行投料,比如生产订单组件数量是100PCS,那在做工单发料的时候MIGO带出的默认发料数量就…

机器学习(MachineLearning)(8)——模型评估与优化

机器学习(MachineLearning)(1)——机器学习概述 机器学习(MachineLearning)(2)——线性回归 机器学习(MachineLearning)(3)——决策树…

Linux_进程控制

一&#xff1a;进程创建 fork()函数创建新进程 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核做&#xff1a;…

Spring Boot Web框架:智慧社区设计新思路

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

cocos Creator + fairyGUI 快速入门

版本 Creator 3.8.x&#xff0c;FairyGUI 2022 大部分内容来自 https://en.fairygui.com/docs/sdk/creator 1.新建cocos项目&#xff0c;根目录运行 npm install --save fairygui-cc 引入 fairyGUI库 2.assets目录之外新建fairyGUI项目 3.fairyGUI中编辑UI 完成后发布到Creato…

uniapp,获取头部高度

头部自定义时候&#xff0c;设置获取安全区域&#xff0c;可以用 uni.getSystemInfoSync();接口。 <view class"statusBar" :style"{height:statusBarHeightpx}"> let SYSuni.getSystemInfoSync(); let statusBarHeightref(SYS.statusBarHeight) …

Python基础——类与对象

类与对象的理解&#xff1a; 在程序中我们将类看作是设计图纸&#xff0c;对象则是根据这个图纸生产的产品。面向对象编程就是使用对象编程&#xff0c;在类中我们定义成员属性和方法。 来看下面这个例子&#xff0c;创建student类&#xff0c;定义对象并对属性赋值。 class S…

解决linux服务器磁盘占满问题(详细,有效,100%解决)

应用场景&#xff1a; 在我们的日常开发中&#xff0c;我们的服务器总是在不知不觉中磁盘莫名奇妙少了很多空间&#xff0c;或者被占满了&#xff0c;如果这时候要想要存储什么文件&#xff0c;突然发现空间不够了。但我们通常也不知道那些文件占用的空间大&#xff0c;这时候…

Vue是一套构建用户界面的渐进式框架,常用于构建单页面应用

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

红黑树的理解与实现(详解)

相关的数据结构&#xff1a; 搜索二叉树-CSDN博客 AVL树的创建与检测-CSDN博客 个人主页&#xff1a;敲上瘾-CSDN博客 个人专栏&#xff1a;游戏、数据结构、c语言基础、c学习、算法 目录 一、红黑树规则&#xff1a; 二、红黑树的插入 1.变色 2.单旋变色 3.双旋变色 三、…