public class App {
initializeGlobalTable();
for (int instanceCount = 0;instanceCount<numberOfInstances;instanceCount++)
{
Instance instance = new SomeInstance();
Thread thread = new Thread(instance);
thread.start();
}
}
initializeGlobalTable()将通过从DB读取数据来初始化某个对象。这些对象由线程在内部使用。
挑战:数据库中的数据用于定期更新。我应该如何在APP中更新这些值,并将这些更新的值传递给读取它的线程。
如果我不是很清楚,请告诉我。真的很感激任何帮助:)
答案 0 :(得分:1)
这并不困难。您需要在一个地方保持对数据库的访问(让我们称之为服务层)。
假设您的线程只是从DB读取而不是写入。所有这些人都会参考该服务。如果您使用Spring,那么可以使用@Autowire of the Service。如果您不使用Spring,请使用Singleton模式。
根据数据更改的频率和读取频率,您可以考虑缓存服务中的值。
将数据库读取的方法标记为“同步”只是为了安全起见,这可能很有意思,但由于您只是阅读,因此它不应该是强制性的。