「初期化」の定義を見てみましょう。
+ (void)initialize
討論
ランタイムは、クラスまたはそれを継承するクラスがプログラム内から最初のメッセージを送信する直前に、プログラム内の各クラスに初期化を送信します。(したがって、クラスが使用されていない場合、メソッドが呼び出されることはありません。)ランタイムは、スレッドセーフな方法で初期化メッセージをクラスに送信します。スーパークラスは、サブクラスの前にこのメッセージを受け取ります。
初期化は「スレッドセーフな方法」で送信されると述べられています。隠れて、ランタイムはその呼び出しをスレッドセーフにするためのロックを作成していますか、それともランタイムの動作方法から本質的にスレッドセーフですか?ロックする場合、+ initializeを実装すると、ランタイムが他の方法では作成しなかったロックを作成することを意味しますか?