2016-07-22 2 views
0

기존 대기열에 "추가"할 수 있는지 궁금합니다. 예를 들어 15 장의 사진을 찍어서 순차적으로 처리하려고한다고 가정 해 봅시다. 어떻게 사진을 대기열에 추가 할 수 있습니까? ?GCD 대기열에 추가

나는 현재이 같은 것을 사용 : 그래서

dispatch_queue_t photoProcessingQueue; // Declared as IVAR 

photoProcessingQueue = dispatch_queue_create("PROCESSING_QUEUE", NULL); // in ViewDidLoad 

dispatch_async(photoProcessingQueue, ^{ // in Processing Method 
    Processing photos.. 
}); 

내가 다시 호출 할 때 무슨 일이 큐가 사진을 처리하는 중간에있는 경우 내 질문에, 추측? 기본적으로 다음 프로세스를 처리하기 전에 첫 번째 프로세스가 완료 될 때까지 기다리는 것입니까?

답변

0

예에서 동시 대기열을 만들었습니다. 즉, 여러 블록을 대기열에 넣으면 시스템이 사용 가능한 자원을 기반으로 결정하는 최대 한도까지 병렬로 실행됩니다. 다른 블록을 대기열에 추가하면 실행 가능한 사용 가능한 스레드가있는 즉시 실행됩니다.

+0

좋아, 그럼 내가 "처리 방법"을 5 번 호출하면 순차적으로 실행됩니까? 큐를 호출 할 때 큐가 이미 처리 중인지 상관 없습니다. –

+0

아니요. 동시 대기열을 만들었 기 때문에 제출 된 블록이 병렬로 실행됩니다. – Avi

+0

아, 알겠습니다. 전달 된 시퀀스의 메서드를 실행하는 동시 대기열을 만들 수 있습니까? 그렇다면, 그러한 스레드의 정의는 무엇입니까? –