我一直在使用Java的塊來使我的代碼線程安全。我將數據結構移植到java,通常可以使用塊,但我並不總是知道如何以典型的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中的等價物?在這段代碼中,有時候我想鎖定,有時候我不想,但是我想對它做出明智的決定,而不必編寫相同代碼的兩個版本。除了使用塊之外,還有其他的Java鎖定方法嗎?
他已經指定了一個鎖定對象:'lockObject'。而'Bool'不是標準的Java類。 – m0skit0
我最終使用了你的同步解決方案。我看着ReentrantLock的,非常感謝!但是它們似乎不是同步塊的互斥。 – Jon