专栏名称: InfoQ
有内容的技术社区媒体。
今天看啥  ›  专栏  ›  InfoQ

HotSpot虚拟机中具体的锁实现

InfoQ  · 公众号  · 科技媒体  · 2019-01-25 09:16
作者 | 郑雨迪 来源 | 极客时间专栏《深入拆解 Java 虚拟机》 在 Java 程序中,我们可以利用 synchronized 关键字来对程序进行加锁。它既可以用来声明一个 synchronized 代码块,也可以直接标记静态方法或者实例方法。下面我便来介绍下 HotSpot 虚拟机中具体的锁实现。 重量级锁 重量级锁是 Java 虚拟机中最为基础的锁实现。在这种状态下,Java 虚拟机会阻塞加锁失败的线程,并且在目标锁被释放的时候,唤醒这些线程。Java 线程的阻塞以及唤醒,都是依靠操作系统来完成的。举例来说,对于符合 posix 接口的操作系统(如 macOS 和绝大部分的 Linux),上述操作是通过 pthread 的互斥锁(mutex)来实现的。此外,这些操作将涉及系统调用,需要从操作系统的用户态切换至内 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照