java - 区分 Java 编程语言监视器和等待/通知监视器的术语

标签 java concurrency monitor

我对 Java 监视器的术语有疑问。首先我区分两种显示器:

  • 可以使用wait()获取
  • 可以通过同步 block 获取的内容

监视器本身是一个对象,在其上调用wait()synchronized。如何区分这两种类型的显示器?在 JVMTI API他们写道:

"monitor" means Java programming language object monitor.

这对我没有帮助。然而,他们进一步使用术语“监视器”和“竞争监视器”来至少在 API 中的函数调用方面区分它们。

最佳答案

从根本上来说,这些是同一件事。它们有不同的名称:监视器互斥体和(在 Java 中)原始锁,这些术语在当前使用中的含义几乎相同。

涉及互斥体以及调用 wait()notify() 的线程的主要使用模式称为条件,但是相同的互斥量可以同时用作简单的互斥区域。

短语“争用监视器”是指在互斥区域上存在争用的监视器/互斥锁/原始锁。或者更简单地说,一个线程持有互斥锁,而其他线程则等待获取它。

维基百科引用资料:

(应该指出的是,这些页面不是确定的,也不完全一致。但是大多数 IT 人员都“快速而宽松”地使用术语,很少有人阅读过原始出版物。但是,嘿......那是语言是如何进化的。)

关于java - 区分 Java 编程语言监视器和等待/通知监视器的术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895961/

相关文章:

performance - Golang goroutine 在添加并发时变慢

linux - 通过 snmp/WMI 或在 Linux screen/ssh session/w 等上监视和捕获有关远程虚拟机的 Zenoss 事件 session 详细信息。

android - 为什么 Dalvik Monitor 在 8 字节边界上对齐

sockets - 从IE,Firefox和/或Chrome浏览器查看/监视TCP/IP套接字的最佳方法?

java - iText:在可见签名上显示签名详细信息

java.io.FileNotFoundException :/storage/emulated/0/Android/data/MyApplication/MyFile. ICS。 (没有这样的文件或目录)/Android Studio/Ical4j

java - 如何在android中创建动画饼图?

python - 如何在Python中使用多线程调用同一个函数?

c# - 多写者单读者并发模型的最有效锁?

java - 如何使用SpringBoot的@RestController并行处理多个请求?