假设我们有一个带有CacheLoaderWriter的缓存,因此我们已注册了以下事件:write
和writeAll
。
当时这些键的状态是什么?
即如果另一个线程尝试进行cache.get(keyThatBeingWritten)
,是否会阻塞该线程,直到write()
/ writeAll()
操作退出?
答案 0 :(得分:1)
writeAll()
的逻辑功能类似于连续的write()
,一个线程完全有可能观察到一些已经写入的数据,而另一个线程仍在忙于执行writeAll()
。
关于write()
,如果需要,它将阻塞并发的读取器和写入器线程在同一密钥上工作,直到实现Ehcache可见性保证为止。