在JVM的规范中,有这么一些话:
“在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的”
“为了实现监视器的排他性监视能力,JVM为每一个对象和类都关联一个锁”
“锁住了一个对象,就是获得对象相关联的监视器”
从这些话,看出监视器和对象锁好像是一回事,那为何要定义两个东西,若不一样,他们的关系如何?
------------------------------------------------------------------------------------------
监视器好比一做建筑,它有一个很特别的房间,房间里有一些数据,而且在同一时间只能被一个线程占据,
进入这个建筑叫做"进入监视器",访问资源时
进入建筑中的那个特别的房间叫做"获得监视器",可以访问资源时
占据房间叫做"持有监视器",可以访问资源,并获得资源锁
离开房间叫做"释放监视器",释放锁
离开建筑叫做"退出监视器". 访问结束
如果监视器被持有,还有线程要访问房间,此时线程将在房间外排除等候。
------------------------------------------------------------------------------------------
监视器:monitor
锁:lock(JVM里只有一种独占方式的lock)
进入监视器:monitorenter
离开/释放监视器:monitorexit
(monitorenter和monitorexit是JVM的指令)
拥有者:owner
在JVM里,monitor就是实现lock的方式。
monitorenter就是获得某个对象的lock(owner是当前线程)
monitorexit就是释放某个对象的lock
在java中,synchronized是唯一实现同步的东西。对于下面的java程序:
synchronized(obj)
{
... ...
}
在class中将被翻译成
monitorenter(obj)
...
monitorexit(obj)
结合我上面对这些英文名词的介绍,很容易理解monitor和lock的关系。
分享到:
相关推荐
线程同步Synchronized,监视器monitor和锁lock的关系1---马克-to-win java视频
Java并发锁和监视器的区别 Java并发编程中,锁(lock)和监视器(monitor)是两个重要的概念,它们都是用于实现线程安全的机制。本文将详细讨论锁和监视器之间的区别,并阐述它们在Java并发编程中的应用。 锁...
线程同步Synchronized,监视器monitor和锁lock的关系2---马克-to-win java视频
因此,SQL数据库监视器就显得尤为重要,它填补了这一空白,让用户能够获取关于数据库运行状况的实时信息,包括查询性能、资源利用率(CPU、内存、磁盘I/O)、锁等待情况以及事务处理状态等。 `SQLMon.exe.config` ...
根据给定的文件标题、描述、标签以及部分内容,我们可以从中提炼出与系统监视器相关的专业知识点,特别是关于DB2在不同操作系统(如Linux、UNIX、Windows)上的应用和监控技术。下面将对这些知识点进行详细解析: #...
MySQL监视器是数据库管理系统中一个至关重要的工具,它允许管理员实时跟踪和分析MySQL数据库的运行状态,以便优化性能、诊断问题以及确保数据的安全性。在本文中,我们将深入探讨MySQL监视器的功能、重要性以及如何...
在IT运维和系统优化领域,Windows性能监视器是不可或缺的工具,它提供了丰富的数据帮助系统工程师监测和诊断系统性能问题。本文将深入探讨Windows性能监视器中的基本指标,特别关注CPU、内存和硬盘参数,以期为系统...
线程同步Synchronized,监视器monitor和锁lock的关系2---马克-to-win java视频
"目录监视器"是一个用于跟踪和记录指定目录中文件变化的工具。在IT行业中,这样的工具对于开发者和系统管理员来说非常实用,因为它可以帮助他们实时监控文件系统的活动,比如文件的创建、修改、删除等事件。这类工具...
在更复杂的场景下,可以使用监视器(如Java的`synchronized`关键字,C#'s `lock`语句)和锁(如`Mutex`、`Semaphore`)来控制线程的执行顺序和同步。这种方式适用于需要确保线程安全的数据访问或操作。 总之,确保...
佳能Canon 4K技监技术监视器DP-V2411是一款专业的视频监视设备,支持4K分辨率,主要面向数字电影和广播行业的工作流程。在正式使用前,必须仔细阅读随设备提供的使用说明书,理解所有安全及操作注意事项,以确保正确...
此外,处理器还配备了硬件安全功能、安全监视器和锁步功能,确保了数据处理过程中的信息安全。 多核架构是新思科技处理器设计的关键方面,EV7x系列具备多达4个增强型视觉处理单元(VPU)和一个DNN加速器。每个VPU都...
对于汽车应用,ASILB或ASILDReady版本的处理器加快了ISO26262功能安全认证的过程,提供了硬件安全功能、安全监视器和锁步功能,以达到严格的功能安全性和故障覆盖率。 新思科技还提供了MetaWareEV软件开发工具包,...
SQL数据库监视器和调试器是数据库管理中至关重要的工具,它们允许管理员和开发人员深入了解数据库的运行状况,优化性能,并解决潜在的问题。`dbmon`(可能是某种特定的数据库监控工具)在这里扮演着核心角色,它提供...
下面将详细讲解如何使用性能监视器来设置SQL Server计数器,以及如何管理和分析收集到的数据。 首先,启动性能监视器。在Windows操作系统中,可以通过“管理工具”->“性能监视器”来打开这个实用程序。在这里,...
总结起来,Java中的监视器机制是通过锁和特定的协作方法来实现线程同步的,它确保了多线程环境下的数据安全和程序的正确性。理解和熟练掌握监视器的原理与使用,对于编写高效、可靠的并发代码至关重要。在实际开发中...
Atomos Shinobi SDI监视器是一款面向专业摄影师和视频制作者的监视器/录像设备。它的名称可能源自日本忍者(Shinobi或Ninja),并且特别提到了“阿童木史努比”这一动漫角色,这可能是个误解或者拼写错误。下面根据...
HL-700HD是一款专为专业监控领域设计的单机型液晶监视器,其技术规格和功能特点充分体现了现代高清监控设备的高精度和实用性。这款7英寸的显示器拥有1024(H) x 600(V)像素分辨率,像素点距为0.150(H) x 0.050(V)毫米...
在Windows操作系统中,性能监视器(Performance Monitor)是一款强大的工具,用于监测系统资源的使用情况,特别是对于数据库服务器如SQL Server来说,它可以帮助管理员识别和解决问题。本文将深入探讨如何利用性能...