ObjectiveC)단일쓰레드 처리

Thread,

Featured image

@

멀티쓰레드를 사용하여 UI나 데이터 처리를 빠르게 할 수 있다.
하지만 멀티쓰레드 상에서 공유자원을 사용하는 경우 이들이 충돌이 일어나서 앱이 죽어버리는 경우가 생기는데 사람인지라 순차적으로 생각하는게 더 편하다.
그래서 시리얼큐와 같은 순차적인 쓰레드처리가 생긴 것 같다.
이 쓰레드는 단일 쓰레드로 block1의 처리가 완료된 후 block2의 처리가 진행되게 된다.
따라서 데이터 처리 중 원자처리를 해결할 수 있다.

dispatch_queue_t serialQueue = dispatch_queue_create("ThreadName", DISPATCH_QUEUE_SERIAL);

dispatch_async(serialQueue, ^{
    //block1
});

dispatch_async(serialQueue, ^{
    //block2
});