gpt4 book ai didi

应用程序服务器中的 Java 并发

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:47 25 4
gpt4 key购买 nike

我有一个带有 CRUD 操作的小型 Web 应用程序。对于数据,我不能使用数据库,所以我必须将其存储在 map 或类似的数据结构中。根据要求,我需要两个 map 来存储和访问数据,并且必须确保它们彼此同步。现在的问题是,在多线程环境中对两个 map 进行增删改查操作的首选方法是什么,以确保它们处于一致的状态。是否有更好的方法或模式来避免锁定和同步?

谢谢

最佳答案

我相信必须涉及一些同步。您可以尝试以下方法。首先,为两个映射使用 ConcurrentHashMap。然后将两个映射封装在一个对象中,该对象将具有同步方法以确保您的数据处于一致状态。下面是一个例子:

public class ParentMap {
private ConcurrentHashMap<String, Object> map1 = new ConcurrentHashMap<>();
private ConcurrentHashMap<String, Object> map2 = new ConcurrentHashMap<>();

public synchronized void add(Object objectToAdd) {
// Add to map1
// Add to map2
}

public synchronized void update(String key, Object object) {
// Update the object based on the key on both maps (following the rules of your application)
}

public synchronized void delete(String key) {
// Delete in both maps following the rules of your application
}

public Object get(String key) {
// Use the rules of your application to read
}
}

确保您的应用程序中只有一个 ParentMap 对象。您可以为此使用单例模式。

关于应用程序服务器中的 Java 并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41646406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com