[解決済み] NSOperationとGrand Central Dispatchの比較
質問
iOSの並行処理プログラミングについて勉強しています。今までのところ
NSOperation
/
NSOperationQueue
と
GCD
.
を使用する理由は何ですか?
NSOperationQueue
オーバー
GCD
その逆は?
両方のように聞こえる
GCD
と
NSOperationQueue
の明示的な作成を抽象化します。
NSThreads
を使用します。しかし、この2つのアプローチの関係は、私には明確ではありません。
どのように解決するのですか?
GCD
は、タスクベースの並行処理モデルを非常にシンプルに使用できる、低レベルのCベースAPIです。
NSOperation
と
NSOperationQueue
は、同じようなことをするObjective-Cのクラスです。
NSOperation
が最初に導入されましたが、現在では
10.5
と
iOS 2
,
NSOperationQueue
とフレンドは、内部的には
GCD
.
一般に、ニーズに合った最も高い抽象化レベルを使用する必要があります。つまり、通常は
NSOperationQueue
の代わりに
GCD
を行う必要がある場合を除き
NSOperationQueue
はサポートしていない。
なお
NSOperationQueue
はGCDのquot;dumbed-down"バージョンではありません。
NSOperationQueue
を使用する場合、多くの作業を必要とします。
GCD
. (例: 一度に N 個の処理しか実行できない帯域幅に制約のあるキュー、処理間の依存関係の確立など。どちらも
NSOperation
を使用すると、非常に困難です。
GCD
.) Appleは、GCDを活用して、非常に素晴らしいオブジェクトフレンドリーなAPIを作るという大変な仕事をしました。
NSOperation
. 特に理由がない限り、彼らの仕事を利用してください。
注意事項
:
一方、本当にブロックを送るだけでよくて
NSOperationQueue
GCDを使うのは悪いことではありません。ただ、それがその仕事に適したツールであることを確認してください。
関連
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] Swiftで配列に要素を追加する
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み] iPhone - Grand Central Dispatch メインスレッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
制御が非ボイド関数の終了に達する
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?