2011-04-08 29 views

回答

7

它並不像你的問題所暗示的那樣工作。默認情況下,有一個與主線程關聯的主調度隊列,以及三個併發的全局隊列(分別爲高,默認和低優先級)。

併發隊列管理自己的線程資源,而不是與任何特定的線程關聯。

事實上,它說很特別的man頁面上dispatch_queue_create()

「隊列未綁定到執行,並提交給獨立的隊列塊的任何特定的線程可以並行執行。」

至於你是否可以在調度隊列之外使用調度信號(問題的另一部分),答案是肯定的,你可以。它們在Mach信號量的基礎上實現,並且應該在任何地方工作。你可以在這裏看到代碼:

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

相關問題