1

我有两个问题。我有一个多线程 Java 应用程序。当一个线程在一个键上调用 getAndLock 之后,另一个线程立即在同一个键上调用 getAndLock 会发生什么?

  1. 在第一个线程释放锁之前,第二个线程会自动阻塞吗?或者,函数调用会返回一个空的 CAS 值吗?或者,它会抛出异常吗?

  2. 如果第一个线程删除了键(整个文档),那么第二个线程会发生什么?

4

1 回答 1

0

(盐粒;我只熟悉 pecl-memcache 语义)。

文档说它将尝试获取锁三秒钟然后返回OperationTimeoutException。(正如 mikeweid 指出的那样)如果锁已经存在,它应该立即返回并指示密钥存在于错误消息中,但文档没有说明在这种情况下会引发什么异常/错误。

至于第二个问题,如果第一个线程删除了一个键,它应该返回,就好像那个键不存在一样;在这种情况下null

于 2013-03-27T04:46:09.523 回答