티스토리 뷰


결론

Queue 의 동작과 Thread 와는 관계가 없다.


dispatch_sync 로 실행했다면 실행한 Thread 에서,

dispatch_async 로 실행했다면 WorkerThread 에서 동작한다.


Queue type 이 SERIAL 인지 CONCURRENT 인지는 중요하지 않다.



Test code

Serial Queue

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

    

    dispatch_sync(serialQueue, ^{

        NSLog(@"serialQueue_sync : %@", [NSThread isMainThread] ? @"YES" : @"NO");

        //YES

    });


    dispatch_async(serialQueue, ^{

        NSLog(@"serialQueue_async : %@", [NSThread isMainThread] ? @"YES" : @"NO");

        //NO

    });



Concurrent Queue (Global Queue)

dispatch_queue_t concurrentQueue = dispatch_queue_create("concurrent", DISPATCH_QUEUE_CONCURRENT);


    dispatch_sync(concurrentQueue, ^{

        NSLog(@"concurrentQueue_sync : %@", [NSThread isMainThread] ? @"YES" : @"NO");

        //YES

    });


    dispatch_async(concurrentQueue, ^{

        NSLog(@"concurrentQueue_async : %@", [NSThread isMainThread] ? @"YES" : @"NO");

        //NO

    });









공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함