public class App {
initializeGlobalTable();
for (int instanceCount = 0;instanceCount<numberOfInstances;instanceCount++)
{
Instance instance = new SomeInstance();
Thread thread = new Thread(instance);
thread.start();
}
}
initializeglobaltable()将通过读取DB的数据来初始化某些对象。这些对象由线程内部使用。
挑战: DB中用于定期更新的数据。我应该如何在应用程序中更新这些值并将这些更新的值传递给读取线程的值。
如果我不太清楚,请告诉我。任何帮助真的将不胜感激:)
这并不困难。您需要将访问DB的访问权限在一个地方(我们称其为服务层)。
假设您的线程仅从DB中读取而不是写作。他们所有人都会提到服务。如果您使用的是弹簧,则可以使用@Autowire服务。如果您不使用弹簧,请使用单顿图案。
取决于数据发生的频率以及读取的频率,您可以考虑缓存服务中的值。
将读数的方法标记为仅出于安全性而同步,但是您只能阅读,因此不应该是强制性的。