查看“初始化”的定义:
+ (void)initialize
讨论
运行时恰好在类或从它继承的任何类从程序中发送其第一条消息之前向程序中的每个类发送一次初始化。(因此,如果不使用该类,则可能永远不会调用该方法。)运行时以线程安全的方式将初始化消息发送到类。超类在其子类之前收到此消息。
据说初始化是以“线程安全的方式”发送的。在幕后,运行时是创建一个锁以使调用线程安全,还是仅仅从运行时的工作方式来看它本质上是线程安全的?如果它确实锁定了,这是否意味着如果您实现 +initialize 运行时会创建一个原本不会创建的锁定?