`
llyzq
  • 浏览: 585528 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

监视器和对象锁

    博客分类:
  • J2SE
阅读更多

引用自:http://blog.csdn.net/fenglibing/archive/2007/01/15/1483930.aspx

监视器好比一做建筑,它有一个很特别的房间,房间里有一些数据,而且在同一时间只能被一个线程占据,

进入这个建筑叫做"进入监视器",访问资源时

进入建筑中的那个特别的房间叫做"获得监视器",可以访问资源时

占据房间叫做"持有监视器",可以访问资源,并获得资源锁

离开房间叫做"释放监视器",释放锁

离开建筑叫做"退出监视器". 访问结束

如果监视器被持有,还有线程要访问房间,此时线程将在房间外排除等候。

分享到:
评论

相关推荐

    详谈锁和监视器之间的区别_Java并发

    Java并发锁和监视器的区别 Java并发编程中,锁(lock)和监视器(monitor)是两个重要的概念,它们都是用于实现线程安全的机制。本文将详细讨论锁和监视器之间的区别,并阐述它们在Java并发编程中的应用。 锁...

    Java基本概念监视器实习原理解析

    总结起来,Java中的监视器机制是通过锁和特定的协作方法来实现线程同步的,它确保了多线程环境下的数据安全和程序的正确性。理解和熟练掌握监视器的原理与使用,对于编写高效、可靠的并发代码至关重要。在实际开发中...

    synchronized和LOCK的实现原理深入JVM锁机制比较好.docx

    对象监视器设置了多种状态来区分请求的线程,如 Contention List、Entry List、Wait Set、OnDeck 和 Owner 等。 Contention List 是一个虚拟队列,用于存储所有请求锁的线程。Entry List 是一个等待队列,用于存储...

    Windows下使用性能监视器监控SqlServer的常见指标

    在Windows操作系统中,性能监视器(Performance Monitor)是一款强大的工具,用于监测系统资源的使用情况,特别是对于数据库服务器如SQL Server来说,它可以帮助管理员识别和解决问题。本文将深入探讨如何利用性能...

    线程同步问题

    - 当`synchronized`修饰代码块时,监视器锁是`synchronized`括号里配置的对象。 ##### 4.2 wait(), notify() 和 notifyAll() 这些方法都是由Object类提供的,主要用于实现线程间的通信: - `wait()`:使持有监视...

    Java synchronized关键_动力节点Java学院整理

    3. **监视器锁**:`synchronized`关键字实际上基于Java的监视器锁(Monitor)机制,由JVM实现。当线程进入`synchronized`代码块或方法时,会获取锁并进入临界区,执行完毕后释放锁,其他线程才能继续执行。 **...

    Test_return_object.rar_return

    3. **线程等待和锁的释放**:如果一个线程试图进入已由其他线程持有的监视器,它将被阻塞并在等待池中排队。只有当监视器的当前持有者完成执行并释放锁时,这些线程才有可能继续执行。 4. **return语句**:在同步...

    Java 之 synchronized实现机制(monitor)及其优化(CAS操作、Java对象头、偏向锁).docx

    Monitor,也就是监视器,是基于Java虚拟机(JVM)实现的一种锁机制,它确保同一时刻只有一个线程能够执行特定的同步代码。 在JDK1.6之前,`synchronized`被视为重量级锁,因为它涉及到操作系统层面的互斥量(Mutex...

    Java 同步锁(synchronized)详解及实例

    其中,`object`是监视器对象,每个线程在进入同步块之前必须先获得监视器对象的锁。在售票示例中,我们可以用`this`作为监视器对象,因为它代表当前类的实例: ```java public void run() { for (int i = 0; i ...

    Java并发编程:Synchronized关键字深度解析

    重点解析了synchronized的工作原理,包括其底层原理、Monitor监视器锁的工作方式,以及Java对象的内存布局。文中详细介绍了synchronized在JVM中的实现,侧重于其内部对象Monitor(监视器锁)的实现原理。讨论了监视...

    C#多线程监视器程序

    摘要:C#源码,系统相关,多线程,监视器 一个适合初学者参考学习的C#多线程监视器程序,创建3个线程,模拟多线程运行,并绑定TestRun方法,定义线程的绑定方法,在同步对象上获取排他锁,模拟做一些耗时的工作。

    java-syn.zip_Java syn_Java syn锁_java同步锁syn_java锁 syn_syn同步事务锁

    在这里,`object`是监视器锁的对象,只有获取到这个对象的锁的线程才能进入代码块。 3. **synchronized 关键字**: `synchronized`关键字是Java中的内置锁机制,它基于Java内存模型(JMM)来确保线程间的可见性和...

    java锁机制详解.pdf

    钥匙在这里就是对象的监视器锁,每个对象都有一个与之关联的锁。 当线程尝试进入一个`synchronized`方法时,它首先检查是否已经有人持有该锁。如果没有,它就获取锁并执行方法;如果有,它就会被阻塞,直到锁被...

    Java锁的知识总结及实例代码共7页.pdf.zip

    在Java中,锁主要分为两类:内置锁(也称为监视器锁)和显式锁。内置锁是通过synchronized关键字实现的,它可以保证线程的互斥和可见性。当一个线程进入某个对象的同步代码块或同步方法时,会自动获取该对象的锁,...

    java锁的释放与建立

    首先,Java中的锁主要包括两种类型:内置锁(也称为监视器锁)和显式锁。内置锁是通过`synchronized`关键字实现的,它隐含地在每个对象上都存在。当一个线程进入一个由`synchronized`修饰的方法或代码块时,会自动...

    java synchronized demo

    同步方法会隐式地使用`this`作为监视器对象,或者对于静态方法,监视器对象是对应的类的Class实例。 3. **监视器对象**: - 监视器对象是用于锁定的目标,可以是任何对象。在同步代码块中,可以自定义对象作为...

    JAVA多线程的锁机制和无锁并行.docx

    锁机制可以分为内部锁和外部锁两种,内部锁又称为监视器或内部锁,它是一种非公平的排它锁,能够保障原子性、可见性和有序性。 内部锁通过 synchronized 关键字来实现,可以用于修饰方法以及代码块,被修饰的方法...

    Java语言中的多线程编程.pdf

    任何对象都可以作为同步监视器对象,每个同步监视器对象都有且仅有一个锁,线程一旦获取了该同步监视器对象的锁,其他访问该同步监视器对象的线程就要等待。 例如,使用Java程序模拟航班售票系统,在多个窗口同时...

Global site tag (gtag.js) - Google Analytics