`
xly1981
  • 浏览: 146594 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA虚拟机锁机制的升级流程

    博客分类:
  • java
阅读更多
http://ifeve.com/java-synchronized/读后感:

每一个线程在准备获取共享资源时:
第一步,检查MarkWord里面是不是放的自己的ThreadId ,如果是,表示当前线程是处于 “偏向锁”
第二步,如果MarkWord不是自己的ThreadId,锁升级,这时候,用CAS来执行切换,新的线程根据MarkWord里面现有的ThreadId,通知之前线程暂停,之前线程将Markword的内容置为空。
第三步,两个线程都把对象的HashCode复制到自己新建的用于存储锁的记录空间,接着开始通过CAS操作,把共享对象的MarKword的内容修改为自己新建的记录空间的地址的方式竞争MarkWord,
第四步,第三步中成功执行CAS的获得资源,失败的则进入自旋
第五步,自旋的线程在自旋过程中,成功获得资源(即之前获的资源的线程执行完成并释放了共享资源),则整个状态依然处于 轻量级锁的状态,如果自旋失败
第六步,进入重量级锁的状态,这个时候,自旋的线程进行阻塞,等待之前线程执行完成并唤醒自己
分享到:
评论

相关推荐

    【Java并发编程】Synchronized关键字实现原理.doc

    轻量级锁升级重量级锁是指 Java 虚拟机在运行时对锁的升级流程。 4.7、重量级锁流程 重量级锁流程是指 Java 虚拟机在运行时对锁的重量级流程。 5. Synchronized 锁消除 Synchronized 锁消除是指 Java 虚拟机在...

    Java卡虚拟机的安全攻击技术及防御技术研究

    Java卡虚拟机的安全攻击与防御技术是智能卡领域的一个关键问题,特别是在金融和移动支付行业中,Java卡技术...在未来,随着攻击手段的不断演变,Java卡虚拟机的安全防御技术也需要持续升级和完善,以应对新的安全挑战。

    Java基础最新版本.ppt

    Java虚拟机主要由指令系统、寄存器、栈、存储区和碎片回收区组成,负责解释和执行字节码。Java API是预定义的软件组件集合,提供了大量功能,包括I/O、网络编程、图形用户界面(GUI)等,但也增加了学习难度。 Java...

    java开发基础第一章

    【Java开发基础】是编程学习中的重要阶段,本章主要涵盖了Java编程的概述,包括其历史、技术架构、运行机制以及关键组件如JVM(Java虚拟机)和JRE(Java运行时环境)。以下是详细的知识点解析: 1. **Java的发展...

    JavaService

    2. **配置文件**:JSW使用配置文件(如`wrapper.conf`)来设置服务的属性,如Java虚拟机(JVM)参数、启动类、服务名称等。你需要根据项目需求定制这些配置。 3. **安装服务**:使用JSW提供的命令行工具,你可以将...

    java课件,很详细的。

    2. **平台无关性**:通过Java虚拟机(JVM),Java程序可以在任何支持JVM的平台上运行,实现了跨平台的特性。 3. **内存管理**:Java没有指针,而是使用引用,这降低了内存误操作的风险。垃圾收集(Garbage ...

    清华大学JAVA教程

    它的设计目标是“写一次,到处运行”(Write Once, Run Anywhere),这得益于其跨平台的Java虚拟机(JVM)。在J2SE中,我们主要会接触到以下几个核心概念: 1. **基础语法**:包括数据类型(如整型、浮点型、字符型...

    中国联通WCDMA USIM卡Java OTA平台技术规范

    2. Java平台架构:规范中详细描述了USIM卡上的Java虚拟机(JVM)和Java应用环境的架构,包括如何处理字节码、内存管理、安全机制以及与网络的交互等。 3. OTA更新流程:规范详细规定了Java应用的OTA更新过程,包括...

    Java基础面试题

    - 跨平台:通过JVM(Java虚拟机)实现跨平台运行。 - 自动内存管理:使用垃圾回收机制自动管理内存,避免内存泄露。 - 安全性:具有内置的安全机制,如类加载器和异常处理,以防止恶意代码执行。 - 高性能:虽然...

    JAVA CARD 3.0.4 规范

    1. **Java Card平台**:Java Card平台由Java Card虚拟机(JCVM)、应用程序接口(API)和卡管理服务组成。JCVM是专为受限资源环境设计的,它支持字节码执行和内存管理。API则提供了一组类库,用于开发Java Card应用...

    JDK1.8.221(Java)

    版本1.8.221是Java 8的一个更新版本,它包含了Java编程语言的编译器、虚拟机(JVM)、类库和其他开发工具。这个版本的发布旨在修复之前版本中发现的问题,提升性能,并增加一些新的功能。 **Java 开发语言** Java...

    Java零基础 - Java语言发展史.md

    - **JDK 1.2 (1998年)**:此版本中引入了Java虚拟机(JVM)的内存管理机制,特别是自动垃圾回收(Garbage Collection),大大减轻了程序员在内存管理方面的负担。 - **JDK 1.4 (2002年)**:加强了Java的安全性,通过...

    JAVA开发技术培训PPT课件.ppt

    - Java的平台无关性得益于Java虚拟机(JVM),它允许Java程序在不同操作系统上运行。 2. **Java语言基础** - 基本数据类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型...

    Java程序设计实用案例教程源代码

    通过编译器,这些源码文件会被转换成字节码(`.class`文件),然后由Java虚拟机执行。 这个压缩包中的源码分为游戏和小软件两部分,我们可以从中学习到以下几个核心Java编程知识点: 1. **面向对象编程**:Java是...

    Java面试代码与编程题

    6. **JVM内存模型**:理解Java虚拟机(JVM)的工作原理,包括类加载机制、内存区域(堆、栈、方法区、本地方法栈、程序计数器)以及垃圾收集机制。 7. **IO流**:熟悉输入输出流的基本操作,包括字节流和字符流,...

    java功能聊天室代码一个简单的聊天室

    在运行时,Java虚拟机(JVM)会加载并执行这个字节码文件,实现聊天室的功能。 ### 四、实现流程 1. **启动服务器**:运行服务器端程序,监听指定端口。 2. **客户端连接**:用户启动客户端,连接到服务器。 3. **...

    java核心技术I-II

    10. **JVM**:Java虚拟机的工作原理,内存模型,垃圾回收机制,性能优化。 11. **设计模式**:常见的设计模式如单例、工厂、观察者、装饰者等及其在实际项目中的应用。 这个压缩包不仅包含了理论知识,还附带了代码...

Global site tag (gtag.js) - Google Analytics