Core Dataプログラミングガイドに スレッド制限パターンに関するトピックがあり、それは次のように述べています。
が使用されるスレッドで管理コンテキストを作成する必要があります。NSOperationを使用する場合、そのinitメソッドは呼び出し元と同じスレッドで呼び出されることに注意してください。したがって、キューのinitメソッドでキューの管理対象オブジェクトコンテキストを作成しないでください。作成しないと、呼び出し元のスレッドに関連付けられます。代わりに、main(シリアルキューの場合)またはstart(並行キューの場合)でコンテキストを作成する必要があります。
どうしてなのかわからないの?違いはどこですか?