在给定时间运行线程

时间:2011-12-22 06:18:53

标签: java multithreading caching

我的问题与缓存有一定关系,假设有些线程每2秒访问一次我的信息,并且每3分钟就会在数据库中进行更新,所以我最好制作一个信息的哈希映射。由这些线程获取并在每3分钟后更新它并且所有线程都从hashmap获取数据。我的问题是“我将如何确保在3分钟之后我的hashmap将被其他一些线程更新,并且所有时间线程都应该获取最新信息”。

1 个答案:

答案 0 :(得分:0)

您可以使用这样的逻辑来访问数据:

1)获取保护数据的锁。

2)检查数据最后一次更新的时间。

3)如果数据足够有效,请复制所需数据,解除锁定,然后停止

4)更新数据。

5)更新在步骤2中检查的时间戳。

6)复制新数据。

7)解除锁定。

或者,您可以使用专用线程来根据需要更新数据。