我一直在利用 Java 的synchronized
块来使我的部分代码线程安全。我正在将一个数据结构移植到通常可以使用synchronized
块的 java,但我并不总是知道如何以典型的 Java 方式使用它们。
以下是一种场景的示例:
myMethod (Bool useLock)
{
if (useLock)
{
//locks the following section of code until unlocked.
lockObject.lock();
}
//do more stuff....
if (useLock)
{
//unlocks exclusive control of code.
lockObject.unlock();
}
}
我如何在 Java 中做同样的事情?在这段代码中,有时我想锁定,有时我不想,但我想对它聪明一点,不必编写相同代码的两个版本。synchronized
除了使用块之外,还有其他锁定 Java 的方法吗?