У меня есть программа, которая структурирована таким образом:
private static Map<String, PoolObject> objects = new ConcurrentHashMap<>();
// Called from up to 4 different threads
public static PoolObject getObject(String id) {
return objects.get(id);
}
// Called from only one dedicated thread
public static void addObject(String id, PoolObject object) {
objects.put(id, object);
}
public static class PoolObject {
private int a, b c;
private String someString;
...
}
Поля внутри любого PoolObject модифицируются из того же выделенного потока, который также вызывает addObject (). Как сделать так, чтобы обновления полей внутри PoolObject были видны всем потокам читателей? Я не могу изменить класс PoolObject в моей программе, поскольку он является частью внешней библиотеки.