【发布时间】:2019-08-06 23:58:52
【问题描述】:
我有一个在类中是静态的arrayList。
在每个请求的开头,我删除了所有过时的项目:arrayList.entrySet().removeIf(entry -> entry.getValue().isObsolete());
如果项目超过 1 小时,则删除完成。这个方法是同步的。
每个 API 根据参数使用列表中的一项。如果它在列表中,则从那里获取它,否则它会创建一个新项目并将其添加到列表中。 API 使用特定逻辑更新项目的数据。
如何避免在 API x 中更新项目数据而刚刚调用的 API y 将其删除的情况?
我是否必须同步所有 API?我必须在每个 API 的开头锁定 arrayList 对象吗?有更好/更清洁的方法吗?
谢谢
【问题讨论】:
标签: java rest arraylist locking synchronized