同步资源项。即锁定身份证;在Java中

时间:2017-04-07 09:00:15

标签: java multithreading synchronization locking

我有以下方法:

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)

还有什么比这更好的吗?我猜有;)

0 个答案:

没有答案