Да, вроде
static
инициализатор вызывается только один раз, поэтому по определению он безопасен для потоков - вам понадобится два или более вызова инициализатора static
, чтобы даже получить конфликт потоков.
Тем не менее, static
инициализаторы сбивают с толку во многих других отношениях. Там действительно нет определенного порядка, в котором они называются. Это действительно сбивает с толку, если у вас есть два класса, инициализаторы которых static
зависят друг от друга. И если вы используете класс, но не используете то, что настроит инициализатор static
, вы не гарантированы, что загрузчик классов вызовет статический инициализатор.
Наконец, имейте в виду объекты, с которыми вы синхронизируете. Я понимаю, что на самом деле это не то, что вы спрашиваете, но убедитесь, что ваш вопрос на самом деле не спрашивает, нужно ли сделать addController()
поточно-безопасным.