一つのAppleのサイトのためのデータ読み出しは、代わりにロックのGCDキューを使用するための提案のパターンがあります:あなた、あなたがGCDとロックとクリティカルセクションに対処するにはどうすればよいGCDキュー:テーブルビューのcellForRowAtIndexPath
// Create queue early
queue = dispatch_queue_create("com.example.tweets", NULL);
// executed main thread
- (NSArray *)getTweets
{
__block NSArray *a;
dispatch_sync(queue, ^{
a = [tweets copyTweets];
});
return a;
}
// executed on background thread
- (void)addTweet:(Tweet *)tw
{
dispatch_async(queue, ^{
[tweets addTweet:tw];
});
}
UITableViewのcellForRowAtIndexPathのために一度に1つのツイートを読む必要があるプロデューサースレッドを、一度にたくさんのツイートを一度に追加しますか?
それぞれの「読み取り」に「同期」を保存した場合、不要なブロックが多く発生しませんか?