java偏向锁的介绍和实例用法
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇内容主要讲解"java偏向锁的介绍和实例用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java偏向锁的介绍和实例用法"吧!说明1、要判断对象的Ma
千家信息网最后更新 2025年11月09日java偏向锁的介绍和实例用法
本篇内容主要讲解"java偏向锁的介绍和实例用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java偏向锁的介绍和实例用法"吧!
说明
1、要判断对象的MarkWord是否属于偏向模式。
如果不属于,进入轻量级锁判断逻辑。否则,继续下一步判断。
2、判断当前请求锁的线程ID是否与偏向锁本身记录的线程ID一致。
如果一致,继续下一步判断,如果不一致,跳转到步骤4;
3、判断是否需要重偏向。
重偏向逻辑将在下一节解释批量重偏向和批量撤销。如无需,直接获得偏向锁;
4、使用CAS算法更改对象的MarkWord。
将线程ID部分转换为线程ID,若更换成功,则重偏完成,获得偏向锁。若失败,则表明有多线程竞争,升级为轻量级锁。
实例
public class Demo2 { Object o = new Object(); //.c 文件打印出java threaid 对应的os threadid public native void tid(); static { System.loadLibrary("TestThreadNative"); } public static void main(String[] args) { //打印出主线程 System.out.println("java---java---java---java---java---java---java---java---java---"); Demo2 example4Start = new Demo2(); example4Start.start(); } public void start() { Thread t1 = new Thread() { @Override public void run() { while (true) { sync(); } } }; Thread t2 = new Thread() { @Override public void run() { while (true) { sync(); } } }; t1.setName("t1"); t2.setName("t2"); t1.start(); } public void sync() { synchronized (o) { // java threadid 是jvm给的线程id 并不是真是的os 对应的线程id // System.out.println(Thread.currentThread().getId()); //获取java thread 对应的真实的os thread 打印出id tid(); } }}到此,相信大家对"java偏向锁的介绍和实例用法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
实例
一致
内容
对象
轻量
轻量级
逻辑
学习
实用
更深
成功
兴趣
实用性
实际
操作简单
文件
方法
更多
朋友
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳马云网络技术有限公司
连霍高速哪个服务器有水库
查看应用服务器配置
一天速成三级网络技术
vlc服务器搭建
门头沟区数据库
z77服务器
上位机软件开发前景如何
教育系统网络安全培训总结讲话
反传销网络安全教案
网络安全等级定级报告
网络安全整体缺点
塔式服务器维修哪里专业
蓝海互联网科技公司的崛起
p2p平台软件开发商
数据库系统有哪些组成
网络安全审查办法自起施行
元数据 数据库
社区网络安全自查自纠报告
vb数据库显示
数据库中的事务是啥
计算机软件开发报什么专业
互联网科技新书
如何给数据库某列加引号
公安网络安全现状
遂宁软件开发行业标准
号召大家重视网络安全英语
成都服务器管理公司
重大网络安全活动保障总结
软件开发的历史顺序