首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中什么是监视器?

在Java中什么是监视器?
EN

Stack Overflow用户
提问于 2010-07-29 20:14:56
回答 4查看 96.7K关注 0票数 146

在Java的并发编程中,监视器指的是什么?

当我读到“每个对象都关联了一个监视器”时,它的意思是什么?

它是一个特殊的物体吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-29 20:17:40

监视器是一种控制对对象的并发访问的机制。

这允许您执行以下操作:

线程1:

代码语言:javascript
复制
public void a()
{
    synchronized(someObject) {
        // do something (1)
    }
}

线程2:

代码语言:javascript
复制
public void b()
{
    synchronized(someObject) {
        // do something else (2)
    }
}

这可以防止线程1和线程2同时访问被监视(同步)的部分。其中一个将启动,监视器将阻止另一个在第一个完成之前访问该区域。

它不是一个特殊的物体。它的同步机制放在类层次结构的根目录:java.lang.Object

还有waitnotify方法,它们也将使用对象的监视器在不同线程之间进行通信。

票数 98
EN

Stack Overflow用户

发布于 2017-02-19 20:52:24

Java语言和运行时系统通过使用监视器支持线程同步。

监视器与特定的数据项(条件变量)相关联,并作为对该数据的锁定。当一个线程持有某个数据项的监视器时,其他线程将被锁定,并且无法检查或修改数据。

票数 3
EN

Stack Overflow用户

发布于 2018-04-26 21:18:51

监视器是一种同步构造,它允许线程具有互斥和等待(阻塞)特定条件变为真的能力。

监视器还具有一种机制,用于向其他线程发出其条件已被满足的信号。它是同时拥有锁和等待集的实体。在Java中,任何对象都可以充当监视器。

在Java虚拟机中,每个对象和类在逻辑上都与一个监视器相关联。要实现监视器的互斥功能,需要将锁(有时称为互斥)与每个对象和类相关联。这在操作系统术语中称为信号量,互斥是一个二进制信号量。

For more information check the link

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3362303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档