日々精進

新しく学んだことを書き留めていきます

エキスパートObjectiveーCプログラミング 4

○GCDについて
・タスクキューの種類
一度に一つのタスクを実行するserial dispatch queueと
複数のタスクを並列実行するconcurrent dispatch queueがある。


・タスクキューはARCが効かないので自分で参照カウントを管理する必要がある
dispatch_releaseとdispatch_retain関数を使う。
下記のようにasyncに渡したらすぐにqueueをreleaseしても問題ない。asyncに渡すとasyncの中でqueueがretainされるため。

- (void)method{
    dispatch_queue_t queue = dispatch_queue_create("com.example.gcd.myQueue", DISPATCH_QUEUE_CONCURRENT);
    dispatch_async(queue, ^{
        NSLog(@"test");
    });
    dispatch_release(queue);
}