7
두 개의 연속 대기열 A &을 만들고 싶습니다. B. 대기열 B가 대기열 A의 대상인 경우 B를 대기열에 넣고 실행 준비가 끝날 때까지 대기시키고 싶습니다. 그러나 계속 진행하고 싶습니다. 대기열 A의 블록 실행.디스패치 큐 일시 중단이 대상 큐를 일시 중단합니까?
B를 일시 중단하면 대상 대기열 (대기열 A)도 일시 중단됩니까?
내 생각에 나중에 (지정되지 않은) 날짜에 이러한 특정 블록 (큐 B)을 예약하고 싶지만 이들이 동시에 실행되는 것을 원하지 않습니다 (코어 데이터^_^포함). 나는 세마포어를 다루고 싶지 않다. 하지만 B는 여기에 명확하지 않았다 경우
를 일시 중단 된 동안 대기열 A는, 그것의 블록 처리를 계속하려는 것은dispatch_queue_t queueA = dispatch_queue_create("app.queue.A");
dispatch_queue_t queueB = dispatch_queue_create("app.queue.B");
dispatch_set_target_queue(queueB, queueA);
dispatch_suspend(queueB);
/*
* Add a bunch of blocks to queue B or A
* Where the ones added to A should execute immediately
*/
//Wait till blocks on queue A have finished and start up B
dispatch_resume(queueB);
dispatch_release(queueA);
dispatch_release(queueB);