コンカレンシー プログラミング ガイド (PDF 版) の 37 ページと 39 ページは矛盾しているようです。37 ページのコード スニペットでは、次のように指定されています。
if (![anOp isConcurrent])
[anOp start];
else
[NSThread detachNewThreadSelector:@selector(start) toTarget:anOp withObject:nil];
39ページのドキュメントに次のように記載されていることを除いて、これは問題ないように見えます。
ディスパッチ キューを使用すると、個別のスレッドで実行していたほぼすべてのタスクを実行できます。ディスパッチ キューの利点は、対応するスレッド化されたコードよりも使いやすく、これらのタスクをはるかに効率的に実行できることです。
では、detachNewThreadSelector:target:object: を呼び出す代わりに、コードが dispatch_async() を呼び出さないのはなぜでしょうか?