<分区>
我捕获了同步的概念如下:Java 中的每个对象都有一个监视器和一个锁。 Lock是一个实体,可以被线程获取或释放,而monitor是一个实例的机制,它决定线程是否可以获取对象的锁。
我想澄清下面的例子。 首先,我想创建两个对象:
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
是否每个实例都有自己的监视器和锁?还是共享的?
如果我在一个类上同步:
synchronized (MyClass.class) {
...
}
它将如何表现?此同步是否会阻止获取 obj1 和 obj2 锁?如果是这样,Java 中是否存在任何锁层次结构?
跟进:“对象的监视器”或“对象的锁”的正确说法是什么?