我有以下方法:
public void create(Deploy deploy)
public void update(Deploy deploy)
这两种方法使用相同的资源类型Deploy
。我想同步这两种方法,因为创建和更新是非原子的。但是,同步方法太多了 - 我不想阻止对两个不同deployId
的访问。用户应该能够在同一时间创建两个具有不同deployId
的部署。
在Java8中实现这一目标的最佳方法是什么?我正在考虑使用(弱?)使用过的ID的hashmap并锁定它们;类似的东西:
String id = deploy.getId();
lockMap.lockWith(id); // lookup for Lock and creates if missing
...//work
lockMap.release(id)
还有什么比这更好的吗?我猜有;)