安卓面试题多线程 101-105

101. 简述Java体系中锁的优化机制 ?
从JDK1.6版本之后,synchronized本身也在不断优化锁的机制,有些情况下他并不会是一个很重量级的锁了。优化机制包括自适应锁、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁。
锁的状态从低到高依次为无锁->偏向锁->轻量级锁->重量级锁,升级的过程就是从低到高,降级在一定条件也是有可能发生的。自旋锁:由于大部分时候,锁被占用的时间很短,共享变量的锁定时间也很短,所有没有必要挂起线程,用户态和内核态的来回上下文切换严重影响性能。自旋的概念就是让线程执行一个忙循环,
可以理解为就是啥也不干,防止从用户态转入内核态,自旋锁可以通过设置-XX:+UseSpining来开启,自旋的默认次数是10次,可以使用-XX:PreBlockSpin设置。
自适应锁:自适应锁就是自适应的自旋锁,自旋的时间不是固定时间,而是由前一次在同一个锁上的自旋时间和锁的持有者状态来决定。
锁消除:锁消除指的是JVM检测到一些同步的代码块,完全不存在数据竞争的场景,也就是不需要加锁,就会进行锁消除。
锁粗化:锁粗化指的是有很多操作都是对同一个对象进行加锁,就会把锁的同步范围扩展到整个操作序列之外。

偏向锁:当线程访问同步块获取锁时,会在对象头和栈帧中的锁记录里存储偏向锁的线程ID,之后这个线程再次进入同步块时都不需要CAS来加锁和解锁了,偏向锁会永远偏向第一个获得锁的线

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

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

相关文章

20240321金融读报:金融活水促经济发展

虽然有点长,但是感觉很对诶,金融活水不就是跟着国家划得沟沟壑壑灌溉企业吗 银行信贷投放的宗旨是服务实体经济。我们要求全行牢牢把握高质量发展这个首要任务,融入国家新发展格局,锚定符合现代化产业体系、服务社会民生的方向来推…

QT常见数据类型和类的使用

QByteArray QByteArray 是一个Qt框架中的类,它是一个可变长的字节数组,可以用于存储任意类型的数据,包括二进制数据和文本数据 // 创建数组 QByteArray byteArray; // 空的字节数组 QByteArray byteArray1("Hello world"); // 初始…

电脑如何录视频?进阶教程来了!

随着科技的飞速发展,视频录制已成为我们日常生活和工作中不可或缺的一部分。无论是进行在线教育、制作教学视频,还是记录游戏过程、直播分享,录屏都扮演着至关重要的角色。可是您知道电脑如何录视频吗?本文将介绍两种电脑录视频的…

php做桌面应用,具体有哪些,但是集成图形库gui就差了点。主流的gui框架有哪些,php作为服务器端语言,处理网页没有问题

php做桌面应用,具体有哪些,但是集成图形库gui,比起python就差了点。主流的gui框架有哪些, 导读:现在流行全栈开发,一种语言满足web应用,桌面应用,手机应用,但是Php桌面应…

java 判断一个整数是否是回文数

java 判断一个整数是否是回文数 要判断一个整数是否是回文数,可以将其转换为字符串,然后比较字符串的正序和倒序是否相同。以下是用 Java 编写的判断回文数的函数: public class Palindrome {public static boolean isPalindrome(int x) {//…

稀碎从零算法笔记Day23-LeetCode:二叉树的最大深度

题型:链表、二叉树的遍历 链接:104. 二叉树的最大深度 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上…

vue2从基础到高级学习笔记

在实际的工作中,我常使用vue的用法去实现效果,但是你要是问我为什么这样写,它的原理是啥就答不上来了。对vue的认知一直停留在表面,写这篇文章主要是为了理清并弄透彻vue的原理。 学习目标 1 学会一些基本用法的原理 2 弄懂vue核心设计原理 3 掌握vue高级api的用法 一 vue…

sonarqube使用指北(一)- 基于docker的安装部署

一、前言 最近出于SDL的安全需求,打算部署一个静态代码扫描工具,出于通用性和可靠性的考虑,选择sonarqube来执行静态代码扫描。 SonarQube 是一个用于进行代码质量管理的开源平台,它提供了代码静态分析、代码检查、代码覆盖率等功能。下面是 SonarQube 的一些优缺点: 优点…

环境安装篇 之 安装kubevela

云原生学习路线导航页(持续更新中) 本文是 环境安装 系列文章,介绍 oam规范标准实施项目 kubevela 的安装详细步骤kubevela 官方安装文档:https://kubevela.io/zh/docs/installation/kubernetes/ 1.CentOS 安装kubevela 1.1.前提…

电脑数据安全新篇章:备份文件,守护您的珍贵数据

备份文件,无疑是电脑使用中不可或缺的重要一环。在数字化时代,我们的工作、学习和生活都离不开电脑,而电脑中的数据更是我们宝贵的财富。一旦数据丢失或损坏,可能会带来无法估量的损失。因此,备份文件的重要性不言而喻…

Vue.js+SpringBoot开发高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

力扣hot100:4. 寻找两个正序数组的中位数(归并排序/二分/双指针)

目录 一、暴力排序 二、归并排序 三、双指针 四、二分查找 如果本题不说明时间复杂度应该为O(log(mn),那么本题应该是一个简单题,解决的方法有很多。这里先列举出普通方法,再来讨论二分。 一、暴力排序 不管啦,直接纯暴力&…

2024蓝桥杯每日一题(BFS)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:母亲的奶牛 试题二:走迷宫 试题三:八数码1 试题四:全球变暖 试题五:八数码2 试题一:母亲的奶牛 【题目描述】 农夫约…

黑白照片怎么变彩色?3个实用上色方法分享

黑白照片怎么变彩色?这是一个让许多人感到好奇和期待的问题。随着科技的发展,现在已经有多种软件可以将黑白照片转变为彩色,让历史的回忆重新焕发出生机。这些软件利用先进的算法和图像处理技术,能够精准地还原出照片中的色彩&…

Android学习进阶

UI组件进阶 使用RecyclerView和Adapter显示列表数据 RecyclerView是Android开发中用于显示列表数据的一个灵活且高效的组件。与其前身ListView相比,RecyclerView引入了更加复杂的布局排列和动画支持,使得创建高度定制化的列表和网格布局变得更加简单。…

【前端】卡片渐变色阴影效果 旋转动画

【前端】卡片渐变色阴影效果 旋转动画 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Breathing…

【G3D笔记】AI生成式3D算法相关环境安装爬坑笔记

【G3D笔记】AI生成式3D算法相关环境安装爬坑笔记) 1、 RayMarching1.1 error C1189: #error: You need C++17 to compile PyTorch1.2 raymarching安装环境版本测试1.3 host_config.h(231): fatal error C1083: 无法打开包括文件: “crtdefs.h”2、Tiny-Cuda-nn2.1 HTTP/2 stre…

mysql体系结构及主要文件

目录 1.mysql体系结构 2.数据库与数据库实例 3.物理存储结构​编辑 4.mysql主要文件 4.1数据库配置文件 4.2错误日志 4.3表结构定义文件 4.4慢查询日志 4.4.1慢查询相关参数 4.4.2慢查询参数默认值 4.4.3my.cnf中设置慢查询参数 4.4.4slow_query_log参数 4.4.…

Hbase java客户端调优——Connections

1、介绍&#xff1a; 大约一年前&#xff0c;有人要求我为一个时间序列产品调优 HBase 的读写性能。该产品在 AWS i2.4XL 中使用 10 个数据节点&#xff0c;并有 15 个计算节点&#xff0c;其中 10 个用于连续写入&#xff0c;5 个用于读取并运行来自这些数据节点的批处理作业…

面试十 简单工厂、工厂方法、抽象工厂

/*简单工厂 Simple Factory&#xff1a;优点&#xff1a;把对象的创建封装在一个接口函数里面&#xff0c;通过传入不同的标识&#xff0c;返回创建的对象&#xff0c;客户不用自己负责new对象缺点 &#xff1a;提供创建对象实例的接口函数不闭合&#xff0c;不能对修改关闭&am…