Object o = new Object()在内存中占几个字节

CAS:

Compare and Swap,即比较再交换。

jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是一种独占锁,也是是悲观锁。

 

 

 

 CAS算法理解

对CAS的理解,CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做.

 

查看对象在内存中的布局:

引入依赖

        <dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.10</version></dependency>

 

 

对象在内存中的布共分为四部分:

 

 

对象在内存中的布共分为四部分:

  1. Markword:主要存储锁的信息和GC的信息,占8个字节

  2. 类型指针class pointer :指向这个类在内存中的Class对象,占4个字节

  3. 实例数据 instance data : 这个类中实例对象所占的内存,如果int a 则占4个字节,如果时long b,则占8个字节

  4. 对齐padding:如果前边几个加起来的字节数不是8的整数倍,则填充补齐

    所以Object o = new Object();在内存中共占用8+4+0+4共16个字节

 

 

 

 

 

 

锁的升级:锁的信息记录在markword中.
  • Object o = new Object();在对象刚刚被new出来时,没有加任何锁.用markdown中最低三位代表锁状态,其中一位是偏向锁位,两位是锁标志位

  • 此时线程A访问该对象,因为A是第一个访问该对象的线程,此时没有其它线程竞争,o的markword的前54位指向了当前线程,此时为偏向锁.

  • 当线程A添加了偏向锁之后,线程B也来访问o对象,A,B两个线程竞争.这两个线程分别在各自的线程栈中生成一个Lock Record,以CAS的方式对o竞争加锁,假设A成功,则o的markword指向线程A的Lock Record,线程B处于自旋状态.此时o上添加的是轻量级锁也叫自旋锁,也叫无锁.

  • 当线程B自选次数超过10次,则向操作系统内核态申请重量级锁资源

 

 

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

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

相关文章

MYSQL笔记:删除操作Delete、Truncate、Drop用法比较

今天小编给大家梳理一下MYSQL删除操作Delete、Truncate、Drop用法有什么区别&#xff0c;到底该如何合理使用&#xff0c;希望对大家能有帮助&#xff01;1、执行速度比较Delete、Truncate、Drop关键字都可以删除数据drop>truncate>delete2、原理方面2.1 deletedelete属于…

partition oracle用法,Oracle partition by 使用说明

--用法详解0、select * from wmg_test; ---测试数据1、select v1,v2,sum(v2) over(order by v2) as sum --按照 v2排序&#xff0c;累计nn-1....1from wmg_test;2、select v1,v2,sum(v2) over(partition by v1 order by v2) as sum --先分组&#xff0c;组内在进行…

SQLServer优化:SQLServer中NOLOCK关键字的用法介绍

目录 1、为什么SQLServer有NOLOCK关键字&#xff1f; 2、SQLServer有NOLOCK有什么问题 3、NOLOCK使用场景 4、nolock和with(nolock)的区别 5、表解锁脚本 1、为什么SQLServer有NOLOCK关键字&#xff1f; SQLServer没创建一个查询&#xff0c;都相当于创建一个查询会话&#xff…

20144303 20145239 实验三

20144303 20145239 实验三 实验内容 1、首先连接好实验箱电源&#xff0c;用串口线、并口线、网线、连接实验箱和主机 2、安装ADS并破解 安装文件在00-ads1.2目录下&#xff0c;破解方法在00-ads1.2\Crack目录下 3、安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 把整个GIVEIO目录…

oracle无法创建监听器,关于Oracle net Manager中点击无法创建监听程序的解决方案

首先查看你的环境变量中是否有如果没有请添加该环境变量。变量名为&#xff1a;TNS_ADMIN 变量值为&#xff1a;E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN;(如果你更改了默认目录&#xff0c;请找到相应的目录加进去)&#xff0c;添加完成之后&#xff0c;…

办公技巧:分享5个非常好用的Excel插件

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

weblogic安全漫谈

今天&#xff0c;我来与大家探讨一下关于weblogic的话题 在进入内网后&#xff0c;如图&#xff1a; 当我们看到7001时&#xff0c;我们就可以测试weblogic反序列化漏洞&#xff0c;如图&#xff1a; 证明&#xff0c;漏洞存在&#xff0c;查看一下权限&#xff0c;如图&#x…

linux使进程不依赖终端,Linux nohup命令应用简介--让Linux的进程不受终端影响

nohup命令应用简介--让Linux的进程不受终端影响by:授客QQ&#xff1a;1033553122#开启ping进程[rootlocalhost ~]# pinglocalhost &[2] 4169[1]Terminatednohup ping localhost[rootlocalhost ~]# PINGlocalhost (127.0.0.1) 56(84) bytes of data.64 bytes from localhost…

电脑技巧:Win10操作系统设置定时开机图解教程

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

网络技巧:想要WiFi信号满格,路由器应该这样放

现如今人手一部手机 不知不觉 WiFi也成了生活“必需品” 刷视频正入迷视频却突然卡顿 换个房间就收不到WiFi信号 如此令人抓狂的事情 生活中你一定遇到过 其实 这与路由器的错误摆放有很大关系 家庭无线路由器 放置在哪里信号最好&#xff1f; WiFi信号差如何解决&#xff1f; …

linux系统export,Linux入门进阶 - 如何在Linux中使用export命令

原标题&#xff1a;Linux入门进阶 - 如何在Linux中使用export命令来自&#xff1a; Linux迷链接&#xff1a;https://www.linuxmi.com/linux-export.htmlLinux export命令会标记哪些值需要传递给一组子进程。这是bash shell提供的一个简单但有用的特性。它允许管理员在不中断当…

Duilib开发环境搭建

1.到github上下载最新版本&#xff0c;https://github.com/duilib/duilib&#xff0c;也没有发现版本号&#xff0c;就如图所示吧 2.我只安装了VS2008&#xff0c;而github上的已经更新到VS2013了&#xff0c;所以要手动修改SIN工程文件 把sln文件打开&#xff0c;将最上面的2行…

手机技巧:手机丢了记住这四步操作,让你的损失降到最低

随着扫码支付的普及、智慧生活的升级&#xff0c;没有钱包能付账&#xff0c;没有公交卡能乘车&#xff0c;没有银行卡也能取款&#xff0c;只要你手机在手&#xff0c;手机手机钱包身份证银行卡各种支付密码。但你是否想过&#xff0c;如果某一天手机丢了&#xff0c;该怎么办…

mysql共享锁

共享锁 共享锁指的就是对于多个不同的事务&#xff0c;对同一个资源共享同一个锁。相当于对于同一把门&#xff0c;它拥有多个钥匙一样。就像这样&#xff0c;你家有一个大门&#xff0c;大门的钥匙有好几把&#xff0c;你有一把&#xff0c;你女朋友有一把&#xff0c;你们都…

网络技巧:无线路由器越用越慢的解决方法

目录 01 ​​​​​​​路由器越用越慢很平常 02 国区设置不要乱用 03 很容易被遗忘的IPv6设置 04 学会自我检查掉线问题 05 番外篇&#xff1a;测试自己的网速 “耳机、音箱通过一定时间的煲机&#xff0c;表现效果会变好&#xff0c;可为何家里WiFi网络却老是给人越用越慢、越…

Mac软件:15个提升办公效率的软件

目录 1.解压软件&#xff1a;RAR Extractor - The Unarchiver Pro 2.实用清理软件&#xff1a;CleanMyMac X 3.水族屏保软件:Desktop Aquarium Wallpaper‪s 4.桌面图标隐藏工具&#xff1a;Desktop Curtain 5.剪贴板工具&#xff1a;Paste 6.快捷键查看软件&#xff1a;Cheats…

从0开始学习 GitHub 系列之「03.Git 速成」

前面的 GitHub 系列文章介绍过&#xff0c;GitHub 是基于 Git 的&#xff0c;所以也就意味着 Git 是基础&#xff0c;如果你不会 Git &#xff0c;那么接下来你完全继续不下去&#xff0c;所以今天的教程就来说说 Git &#xff0c;当然关于 Git 的知识单凭一篇文章肯定说不完的…

Spring系列(一):Spring相关知识介绍笔记

目录 1、Srping概念 2、Spring原理 2.1 控制反转(Inversion of control)&#xff08;IOC&#xff09; 2.2 面向切面编程(Aspect-Oriented Programming)&#xff08;AOP&#xff09; 3、Spring框架结构 4、Srping生命周期 4、Srping有什么优势&#xff1f; 4.1、非侵入式设计 4.…