2011-04-08 4 views

답변

7

질문이 의미하는대로 작동하지 않습니다. 기본적으로 주 스레드와 연결된 주 디스패치 대기열과 3 개의 대기열 (각각 높은 우선 순위, 낮은 우선 순위 및 낮은 우선 순위)이 있습니다.

동시 대기열은 특정 스레드와 연결되지 않고 자체 스레드 리소스를 관리합니다.

사실, 그것은 dispatch_queue_create() man 페이지에 상당히 구체적으로 말한다 :

"대기열이 동시에 실행할 수있는 실행 및 독립적 인 큐에 제출 블록의 특정 스레드에 바인딩되지 않습니다."

디스패치 대기열 (질문의 다른 부분) 외부에서 디스패치 세마포를 사용할 수 있는지에 대한 대답은 '예'입니다. 그들은 마하 세마포어 (semaphore) 위에 구현되며 모든 곳에서 작동해야합니다. 여기에서 코드를 볼 수 있습니다 :

http://opensource.apple.com/source/libdispatch/libdispatch-84.5.5/src/semaphore.c

관련 문제