Нужно ли делать статически введенные значения изменчивыми? - PullRequest
0 голосов
/ 31 марта 2011

Если я использую requestStaticInjection() в одном из моих Module с, чтобы внедрить поле static в классе, и это поле static может быть доступно потоку, который не вызывает Guice.createInjector(), нужно ли в поле static отмечать volatile, чтобы оно было видно другим потокам? Из всего, что я могу сказать, похоже, что статическое внедрение происходит внутри потока, который называется Guice.createInjector(), и больше ничего особенного не происходит, поэтому я думаю, что volatile было бы хорошей идеей.

1 Ответ

2 голосов
/ 31 марта 2011

IIRC Статическая инъекция Guice выполняется при Injector времени создания.

Следовательно, если другой поток запускается после этого создания, проблем не должно быть.

В противном случае вы можете столкнуться с проблемами; но в целом я бы не стал выполнять слишком много закулисной работы во время создания Injector, я бы предпочел начинать "материал" после того, как Guice.createInjector() был возвращен *1012*.

Некоторое более подробное описание вашего кода может помочь найти лучший ответ на ваш вопрос.

...