【发布时间】:2020-08-31 11:53:51
【问题描述】:
从 guava 文档here 中,当收到对刷新时间已过期的缓存键的请求时,如果以这种方式设置并返回现有值,它会启动一个异步线程来刷新该键。我没有从文档中得到的是,当在第一个请求之后立即收到另一个请求并且前一个用于刷新的异步线程仍在运行时会发生什么?会不会-
- 返回旧数据并启动另一个异步线程进行刷新或
- 它看到另一个刷新线程正在运行,它只是返回旧数据而不产生新线程。
如果行为是第一个,我会担心如果请求率非常高,它最终可能会在后台占用大量资源。
【问题讨论】: