我在想,如果的Java圍繞鎖同步聲明
synchronize (lock) {
...
}
如果鎖是java.util.concurrent.locks.Lock
一個實例,把lock
像任何其他對象或作爲嘗試,終於成語即
lock.lock();
try {
...
} finally {
lock.unlock();
}
我在想,如果的Java圍繞鎖同步聲明
synchronize (lock) {
...
}
如果鎖是java.util.concurrent.locks.Lock
一個實例,把lock
像任何其他對象或作爲嘗試,終於成語即
lock.lock();
try {
...
} finally {
lock.unlock();
}
請注意,鎖定實例只是 normal ob並且它們本身可以被 用作同步 聲明中的目標。獲取Lock實例的監視器鎖 沒有指定 與調用該實例的任何 lock()方法的關係。建議您爲 建議避免混淆 您絕對不要在此 方式中使用鎖定實例,除非在其自己的 實現中。
所以基本上,它被視爲任何其他對象。而且,不要這樣做。
它會像對待任何其他對象一樣對待鎖。
C#編程語言中的lock語句可以用於一次只對一個線程限制對特定部分代碼的訪問。
爲什麼「不這樣做」? – hhafez 2009-06-25 21:07:54
@hhafez:「不要這樣做」,因爲文檔中提到「爲避免混淆,建議您不要以這種方式使用Lock實例,除非在他們自己的實現中。」 – 2009-06-25 21:12:37