【发布时间】:2012-12-31 10:32:32
【问题描述】:
我想自动添加一个新的密钥到 google appengine 的 memcache 服务使用 Java API。这意味着如果 key 已经存在于 memcache 中,则 put 操作应该失败(例如抛出异常或返回 false ),从而防止并发添加(这将导致覆盖)到 memcache。
我不明白如何使用 getIdentifiable / putIfUntouched 对方法来实现这一点。此外,synchronize 也无济于事,因为我想控制我的 servlet 不同实例之间的并发性。
【问题讨论】:
-
“防止并发添加”是什么意思?有几种可能的策略:如果存在则不写入,如果存在则覆盖,或者如果存在则触发异常。
-
为什么不同步块进行添加?
-
如果存在就不要写,否则触发异常将是我想要的。本质上,我要防止的是覆盖(如果存在)。
-
synchronize不会做我想做的事,我想,因为我想控制我的 servlet 不同实例之间的并发添加。
标签: java google-app-engine concurrency memcached