2013-11-25 1 views
0

저는 현재 알고 있습니다. NSOperationQueueGCD을 사용합니다.NSOperationQueue와 GCD의 직렬화

dispatch_async(background_queue, ^{ 
    [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
     // block 1 
    }];   

    dispatch_async(dispatch_get_main_queue(), ^{ 
     // block 2 
    }); 
}); 

답변

2

가 아니,이 : 나는 블록 2 전에 블록 1의 실행 순서는 다음과 코드에 보장되어 있는지 여부를 주요 작업 대기열 및 주요 파견 큐, 즉, 기본적으로 동일한 큐 여부를 확인하려면 두 블록이 주어진 순서대로 실행되도록 보장합니다. 그들은 그렇지 않을 수도 있습니다. 그렇게하면 NSOperationQueue 작업을 기본 GCD 대기열에 즉시 대기열에 넣어야합니다. 그것은 그 계급의 일반적인 패턴과 상반 될 것입니다.

두 작업을 서로 연계하여 실행해야 할 때마다 코드의 동시성을 명시 적으로 관리해야합니다.