JVM гарантирует, что ЛЮБОЙ класс инициализируется ровно один раз.
Какой именно низкоуровневый механизм используется для этого, действительно зависит от JVM, но вы, как программист, должны знать, что он поточно-ориентирован как таковой, пытаясь получить доступ / инициализировать тот же класс из потоки. (Разумеется, это относится только к загрузке классов: с точки зрения доступа к любым неизменным данным, будь то статическим или конкретным, вам необходимо принять соответствующие меры.)