java的周围锁同步声明(Java synchronize statement around a l

2019-09-17 00:59发布

我在想,如果

synchronize (lock) {
    ... 
}

当锁的一个实例java.util.concurrent.locks.Lock ,对待lock像任何其他对象或作为尝试,终于成语即

 lock.lock(); 
 try {
     ... 
 } finally { 
    lock.unlock();
 }

Answer 1:

锁定文档 :

需要注意的是锁实例只是普通的对象,其本身可以在synchronized语句作为目标。 获取Lock实例的监视器锁定与调用任何锁定的()的实例的方法没有特定的关系。 建议为了避免混淆,你从来不使用锁定实例以这种方式,除了其自身的实现中。

所以基本上,它会被视为任何其他对象。 而且,不这样做。



Answer 2:

它将把锁就像任何其他对象。



Answer 3:

在C#编程语言中的lock语句可应用于限制在同一时间访问特定的代码部分,只有一个线程。



文章来源: Java synchronize statement around a lock