首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中,对象的监视器是什么意思?为什么要用这个词呢?

在Java中,对象的监视器是什么意思?为什么要用这个词呢?
EN

Stack Overflow用户
提问于 2012-03-24 10:23:04
回答 4查看 40.5K关注 0票数 92

在阅读有关Java线程的文章时,我经常注意到这样一句话:“当前线程是此对象监视器的所有者”。我明白了:线程获得了对对象进行操作的权限。但我不明白为什么我们用“对象的监视器”而不是“对象的锁”?

简而言之,我不知道“显示器”这个词的意思。这个问题可能很奇怪,也很简单。但我希望任何人都能帮助解决这个问题。3ks

EN

回答 4

Stack Overflow用户

发布于 2012-03-24 10:35:08

监视器只是对象的一个术语,它的方法可以在多线程环境中安全地使用。

维基百科上有一篇关于监视器的很棒的文章:

http://en.wikipedia.org/wiki/Monitor_(synchronization)

如果你向下滚动,它甚至还有一个section explicitly about Java

票数 23
EN

Stack Overflow用户

发布于 2014-07-09 04:28:31

object周围的synchronized块是它的监视器,它控制对象上的锁。下面是一个示例

代码语言:javascript
复制
synchronized (object) {
   while (<condition does not hold>)
      object.wait(timeout);
   ... // Perform action appropriate to condition
}
票数 7
EN

Stack Overflow用户

发布于 2017-02-03 01:32:56

尽管回答这个问题为时已晚,我还是想补充一下--以防万一。

下面是一个非同步Java方法中的同步Java代码块

代码语言:javascript
复制
public void add(int value){
synchronized(this){
      this.count += value;
   }
}

在示例中使用了"this“,这是调用add方法的实例。同步实例方法使用它所属的对象作为监视器对象。

在同一监视器对象上同步的=>代码块中,只有一个线程可以执行。

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

https://stackoverflow.com/questions/9848616

复制
相关文章

相似问题

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