我有一個多線程應用程序,我想在String
上使用重入鎖。例如,如果我使用正常的同步,我的代碼將如下所示。如何獲取字符串值的重入鎖定?
我不希望兩個IP地址相同的IP地址在我的loadBalance()
中輸入,所以我鎖定了IP地址,它工作正常。
class A {
String ipAddress;
...
void loadBalance() {
synchronized (ipAddress) {
// Business logic goes here
}
}
}
現在,如果我使用重入API這裏,那麼代碼看起來像below.Now同一個IP地址的兩個線程在我的代碼不要求是進入。所以我需要知道如何使用Re-entrant API來防止這種情況。
class A {
String ipAddress;
ReentrantLock lock = new ReentrantLock();
...
void loadBalance() {
lock.lock();
// Business logic goes here
lock.unlock();
}
}
我的查詢是我怎麼能使用Re-entrant
鎖鎖取IP地址,因爲我在synchronized block
正在做的。
不,我說我要採取鎖名稱IP地址。所以我很清楚,我怎樣才能實現使用同步塊。但我不知道如何使用重入API鎖定IP地址。如果我採取類似lock.lock()的操作,那麼兩個具有相同IP地址的線程將進入我的塊中,這是不推薦的。 –
謝謝您的澄清 –
歡迎您:)我希望您能分享您對此的寶貴意見。 –