Если предположить, что сам конструктор является потокобезопасным, это нормально.
Было бы очень необычно для конструктора , а не быть потокобезопасным, но возможно ... даже если он вызывает автоматически сгенерированный конструктор по умолчанию для Entity
, базовый конструктор может не быть потокобезопасным. Я не говорю, что это вероятно, просто возможно:)
В принципе, нет никакой магической безопасности потоков, применяемой к статическим методам или экземплярам методов или конструкторам. Все они могут быть вызваны в нескольких потоках одновременно, если не применяется синхронизация. Если они не извлекают и не изменяют какие-либо общие данные, они, как правило, будут в безопасности - если они делают доступ к общим данным, вам нужно быть более осторожным. (Если общие данные являются неизменяемыми или доступны только для чтения, это, как правило, нормально, но если один из потоков будет изменять его, вам нужно быть очень осторожным.)
Только статические инициализаторы (выражения инициализации для статических переменных и static { ... }
блоков непосредственно внутри класса) имеют специальную обработку - виртуальная машина гарантирует, что они выполняются один раз и только один раз, блокируя другие потоки, которые ожидают, чтобы тип был инициализируется.