【发布时间】:2011-07-15 10:43:45
【问题描述】:
我有一个在启动时加载其配置的多线程程序。然后通过它们的构造函数将配置传递给线程。
但现在我想定期加载一个新的配置实例,并将其传递给线程。
一个想法是使线程类中对配置文件的引用变为易失性。然后,当更新的配置实例可用时,调用更新update(Config c) 方法。
这是要走的路吗?我的性能会很糟糕,因为每次线程需要一些设置时,它都必须进行所有易失性检查。
有更好的建议吗?最佳实践?也许不要让它变得易失,并希望处理器不时从主内存中获取那个新对象?
【问题讨论】:
-
更新配置有多重要?可以5秒刷新一次吗?在这种情况下,volatile 不会显着影响性能
-
在每个线程知道新设置之前甚至可能需要 1 分钟。但我不想看到一半读取配置对象。
标签: java multithreading configuration volatile