我是否需要使静态注入值易变?

时间:2011-03-31 03:21:37

标签: thread-safety guice

如果我在requestStaticInjection()之一中使用Module在类中注入static字段,则线程可能会访问static字段那不是调用Guice.createInjector()的人,static字段是否需要标记为volatile以确保其他线程可见?从我能说的一切来看,看起来静态注入发生在调用Guice.createInjector()的线程中,并且没有其他任何特殊的东西,所以我认为volatile是个好主意。< / p>

1 个答案:

答案 0 :(得分:2)

IIRC Guice静态注入在Injector创建时执行。

因此,如果另一个线程在创建之后运行,则应该没有问题。

否则,您可能会遇到问题;但我通常会避免在创建 Injector期间在幕后执行太多工作,我宁愿在Injector返回Guice.createInjector()之后开始“填充” }}

对代码进行更详细的描述可能有助于找到更好的答案。