请允许我说,我有一个具有多重价值观的论坛,例如:
public enum Category {
A, B, C, D;
}
并且希望建立一个锁定机制,以便我们只在一个时间处理一个类别的项目。 我的第一个想法就是这样做:
Set categories = new HashSet();
for (Category cat : Category.values() {
categories.put(cat);
}
在我需要获得一锁的时候,我做了以下工作:
synchronized(categories.get(category)) {
....
}
will this work or are all references to an enum value global so if some other thread, elsewhere, did the same thing they would block each other?
感谢!