当前位置: 首页 > news >正文

网站建设排版公司建设网站的意义

网站建设排版,公司建设网站的意义,延吉市住房城乡建设局官方网站,网站建设龙卡要审批多久时间java对象包含了三个部分:对象头,实例数据和对齐填充。对象头又存放了:markWord和class point。classpoint :指向方法区,当前对象的类信息数据。markword:存储了很多和当前对象运行时的数据:例如…

java对象包含了三个部分:对象头,实例数据和对齐填充。

  • 对象头又存放了:markWord和class point。

  • classpoint :指向方法区,当前对象的类信息数据。

  • markword:存储了很多和当前对象运行时的数据:例如hashcode,锁状态标志,指向锁记录的指针。

锁标志位:主要用来区分锁的等级,无锁->偏向锁->轻量级锁->重量级锁;

synchronized的实现原理?

synchronized被编译后会成才monitorenter和monitorexit两个字节码指令,分别表示加锁和释放锁

monitorenter和monitorexit都是基于Monitor实现的。所谓的Monitor其实是一种同步工具,也可以说是一种同步机制。在Java虚拟机(HotSpot)中,Monitor是由ObjectMonitor实现的,可以叫做内部锁,或者Monitor锁。

ObjectMonitor的信息如下:

ObjectMonitor() {_header       = NULL;_count        = 0; // 记录线程获取锁的次数_waiters      = 0,_recursions   = 0;  //锁的重入次数_object       = NULL;_owner        = NULL;  // 指向持有ObjectMonitor对象的线程_WaitSet      = NULL;  // 处于wait状态的线程,会被加入到_WaitSet_WaitSetLock  = 0 ;_Responsible  = NULL ;_succ         = NULL ;_cxq          = NULL ;FreeNext      = NULL ;_EntryList    = NULL ;  // 处于等待锁block状态的线程,会被加入到该列表_SpinFreq     = 0 ;_SpinClock    = 0 ;OwnerIsThread = 0 ;}

synchronized的重量级锁讲解

  • 通过上文已知,monitor由Entry Set 和 Wait Set 两个等待区。

  • Entry Set:存放已经准备抢锁的线程。

  • Wait Set:存放执行wait等指令的线程。

  • 当某一个线程抢到锁,那么Owner就会指向改线程。改线程可以调用notify方法,随机唤醒一个线程进入Entry Set 区准备抢锁。

java1.6之后,synchronized有4种状态,无锁,偏向锁,轻量级锁和重量级锁。

无锁:不对资源放入synchronized代码块中。

偏向锁:对资源进行加锁,但是实际运行中只有一个线程获得这个锁。此时锁标志位还是01跟无锁是一样的。仅仅修改是否偏向锁的标志位,从0改到1.

当存在多个线程来获取这个锁时。偏向锁会升级为轻量级锁。但是又一个问题来了?当锁升级为轻量级时如何判断线程和锁之间的绑定关系呢?

轻量级锁和重量级锁都将前30bit修改为 指向栈中记录锁的指针 。此时这个指针会指向虚拟机栈中开辟的lockRecord,lockRecord存放的是MarkWord的副本和owner指针。

线程通过CAS尝试获取锁,一旦获取成功,将复制该对象的markword到自己的lockRecord,并修改owner指针,指向该对象。从而实现了线程和锁之间的绑定。

轻量级锁是多个线程在不同时间访问共享资源。

如果多个线程在同一时刻抢夺锁时,便会升级为重量级锁,就需要用到monitor机制,即如上文所述完全由jvm控制

http://www.sczhlp.com/news/122904/

相关文章:

  • 文化网站源码青海高端网站建设多少钱
  • 仿腾讯视频网站宜昌建设厅网站
  • 大港建站公司电商企业营销推广
  • 太平保险网站阿里云最新消息
  • 盐城市建设银行网站网站模版购买
  • 建站平台费用免费企业网站模板
  • 【小白学算法】矩阵快速幂超详细解析+例题[HDU - 2802]
  • lyms 的神秘歌单
  • 舟山网站seo整人做我女朋友网站
  • 家装网站扬州网站建设 天维
  • 世界杯竞猜网站开发网站建设申请理由
  • 网站开发需要什么东西做商业网站赚钱吗
  • 大学园区二手书交易强大的平台(代码+数据库+LW)
  • webRTC入门
  • 梦幻创意北京网站建设网站开发 一个页面多少钱
  • 彩票做网站服装电子商务网站设计
  • 网站制作具体步骤北京网站备案核验单
  • php网站开发工程师笔试公司网站如何在百度上能搜索到
  • 南昌网站建设公司有哪些邯郸市房产信息网查询
  • 做外单网站关键词查询的五种常用工具
  • 网站访问量大网站制作新手教程
  • 建德网站seo包装设计网站设计平台
  • 小说网站排行榜前十名老榕树网站建设
  • 【C++】类与结构体的区别
  • Linux云端服务器上部署Spring Boot应用
  • HTML表单验证:确认input元素输入为具有特定整数和小数位数的数值
  • 大型网站怎么做seo公司网站宣传设计方案
  • 中小型门户网站万州微网站建设
  • 南充做网站公司哪家好营销网站制作都选ls15227
  • 免费网站商城模板网络营销文案策划