【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 文件没有被正确移除,可能会导致文件…

386. 字典序排数

难度:中等 题目: 给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。 示例 1: 输入:n 13 输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示…

华为ENSP用户权限深度解析:构建安全高效的网络管理

在华为ENSP(Enterprise Network Simulation Platform)用户界面中,用户权限级别是一个重要的概念,它用于限制不同用户访问设备的权限,从而增加设备管理的安全性。以下是对华为ENSP用户界面用户权限级别的详细解释&#…

AI绘图大模型 Stable Diffusion 使用详解

近年来,生成式 AI 技术,特别是 AI 绘图模型的进展令人瞩目。Stable Diffusion 是其中一款开源的大规模图像生成模型,它能够根据文本描述生成高质量的图像,支持从写实风格到卡通、幻想等各种不同的视觉效果。本文将深入介绍如何使用…

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

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

PYTHON使用小结

线程使用 import threadingthread01 Nonedef ThreadFunc(param)xxxxxdef Test()global thread01 thread01 threading.Thread(targetThreadFunc)thread01.daemon True #设置为TRUE,主线程结束后,此线程也会退出, 默认Falsethread01.start()也可以在创…

【VUE】Vue中常用的修饰符

事件修饰符 .stop:阻止事件冒泡。.prevent:阻止默认事件。.capture:使用事件捕获模式。.self:只当事件在该元素本身(比如不是子元素)触发时触发回调。.once:只触发一次事件。 按键修饰符 .en…

获取每个页面的元素,并写入json

获取每个页面的元素,并写入json 想法:如何去记住每个页面的元素,如何实现不同页面的导航,如何从主页面遍历每一个页面的每一个元素 1.创建数据结构存储 2.树状图正好是我们想要的结构体:创建树状图结构体 3.记录每个页…

【微服务】微服务注册:构建灵活的服务管理机制

目录 引言一、什么是微服务注册?1.1 服务注册中心的作用1.2 服务注册中心的工作原理1.3 示意图 二、常见的微服务注册中心2.1 各注册中心详细对比 三、微服务注册的实现方式3.1 Spring Cloud Netflix Eureka3.2 Consul3.3 Zookeeper3.4 etcd 四、微服务注册的注意事…

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,它定义了一种武功套路,而不同的门派、不同的人,可以将这套武…

5个 elasticsearch实战应用案例和详细分析

大家好,我是 V 哥。Elasticsearch 是一个强大的全文搜索和分析引擎,广泛应用于各种场景。以下是五个常见业务场景中的 Elasticsearch 实战应用案例及其详细分析。 1. 全文搜索与高亮显示 业务场景: 某电商平台需要为用户提供高效的商品搜索…

2024-09学习笔记

1.java8的特性回顾 1.拼接join List<String>list Arrays.asList("Java","Python","Javascript"); // 使用 Collectors.joining()将元素连按成字符串 String result list.stream().collect(collectors.joining(",“)); System.out.…

正规方程推导,详细版

推导正规方程&#xff08;Normal Equation&#xff09;通常是在线性回归的上下文中进行的。线性回归的目标是找到一个线性模型 h θ ( x ) θ T x h_\theta(x) \theta^T x hθ​(x)θTx&#xff0c;使得模型的预测值与实际值之间的差异&#xff08;通常是均方误差&#xff0…

GitHub每日最火火火项目(10.19)

项目名称&#xff1a;kokkos/kokkos 项目介绍&#xff1a;kokkos/kokkos 是 Kokkos C性能可移植编程生态系统。它专注于提供并行执行和内存抽象的编程模型。在现代计算中&#xff0c;充分利用硬件的并行处理能力对于提高程序性能至关重要。kokkos 为 C开发者提供了强大的工具&a…

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

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

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

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

AMBA总线AXI与CHI特性接口比对

AXI&#xff08;Advanced eXtensible Interface&#xff09; 和 CHI&#xff08;Coherent Hub Interface&#xff09; 协议的接口和特性区别的对比表&#xff1a; 特性/接口AXI 协议CHI 协议协议类型内存映射接口&#xff0c;专注于数据传输和外设通信缓存一致性接口&#xff…

IE11删除hao360主页

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