JAVA虚拟机有义务保证()方法的线程安全
import java.util.concurrent.atomic.AtomicBoolean;public class ClinitThreadTest {public static void main(String[] args) {new Thread(ClinitObject::new).start();new Thread(ClinitObject::new).start();}static class ClinitObject {private static AtomicBoolean flag = new AtomicBoolean(true);static {System.out.println(Thread.currentThread().getName() + "ClinitObject init");while (flag.get()) {}System.out.println(Thread.currentThread().getName() + "ClinitObject init end");}}
}
Thread-0ClinitObject init
Process finished with exit code 130