[英]Synchronized block: lock many objects?
我有許多客戶端Ai(A1,...,An),每個客戶端都執行動作X。服務器B則執行動作Y。但是只有在沒有人執行X的情況下,Y才能執行。
所以我想到了互斥鎖:每個客戶端都有一個自己的鎖Li。 對於客戶端來說這沒問題,但是對於服務器B來說將是可怕的,如下所示:
synchronized(L1){
synchronized(L2){
...
}
}
對於這種問題有更好的解決方案嗎?
您可以嘗試在所有節點之間共享的ReadWriteLock(ReentrantReadWriteLock)。 服務器應獲取寫鎖定,並將阻止所有客戶端執行X。並且客戶端應獲取讀鎖定,而不阻止其他客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.