关于锁的Java同步语句
我想知道关于锁的Java同步语句,java,multithreading,synchronization,locking,Java,Multithreading,Synchronization,Locking,我想知道 synchronize (lock) { ... } 其中lock是java.util.concurrent.locks.lock的一个实例,将lock视为任何其他对象,或视为try-finally惯用法,即 lock.lock(); try { ... } finally { lock.unlock(); } : 请注意,锁实例只是 正常对象和对象本身可以是 在同步模式中用作目标 陈述获取监视器锁 没有指定锁实例的类型 与调用 该实例的l
synchronize (lock) {
...
}
其中lock是java.util.concurrent.locks.lock
的一个实例,将lock
视为任何其他对象,或视为try-finally惯用法,即
lock.lock();
try {
...
} finally {
lock.unlock();
}
:
请注意,锁实例只是
正常对象和对象本身可以是
在同步模式中用作目标
陈述获取监视器锁
没有指定锁实例的类型
与调用
该实例的lock()方法。它是
建议避免混淆
在这种情况下,您永远不会使用锁实例
方式,除了他们自己
实施
所以基本上,它被视为任何其他物体。不要这样做。它会像对待任何其他对象一样对待锁。可以应用C#编程语言中的lock语句来限制对代码特定部分的访问,一次只能访问一个线程。@hhafez:“不要这样做”,因为文档中说“为了避免混淆,建议不要以这种方式使用锁实例,除非在它们自己的实现中使用。”这是一个Java问题,而不是C#问题。(我没有投反对票。)