私は初めてキューの制御を開始しましたが、キューの使用方法をうまく理解しているように感じます。また、キューを非常に簡単に使用できるようにしたことに対するAppleへの称賛もあります。
しかし、私が遭遇したのは、同じオブジェクトの読み取りと書き込みを行う複数のスレッドの課題です。この質問で私はこの素晴らしい答え@synchronized
を得ました、そしてそれは私がvsの賛否両論を理解することを確認するために皆からのいくつかの確認を求めることを私に残しますGCD dispatch_barrier_async
。
これは私がそれを見る方法です:
@synchronized
PRO:アクセス/ポインタがあれば、任意のオブジェクトをラップできます。@synchronized
これにより、プログラム内のさまざまなオブジェクトから共有データモデルを安全に処理できます。
PRO:iOS 4(およびおそらくそれ以前)でサポート
`dispatch_barrier_async` with custom DISPATCH_QUEUE_CONCURRENT
PRO:@synchronizedよりも高速です
CON:DISPATCH_QUEUE_CONCURRENTはiOS 5でのみ使用可能であるため(ここで説明)、iOS4のサポートには使用できません
CON:他の多くのオブジェクトからのオブジェクトの読み取り/書き込みを制御する場合、キューはそれを作成するオブジェクトのみが最も簡単に利用できるため、使いやすさは劣ります(この制限を回避するための作業は必要ありません)
要約すると、上記を考慮すると、最適なツールはプログラムのニーズによって異なります。
誰かが何か追加したり指摘したりすることがあれば、私はそれをいただければ幸いです。