2011-04-08 37 views

回答

7

它并不像你的问题所暗示的那样工作。默认情况下,有一个与主线程关联的主调度队列,以及三个并发的全局队列(分别为高,默认和低优先级)。

并发队列管理自己的线程资源,而不是与任何特定的线程关联。

事实上,它说很特别的man页面上dispatch_queue_create()

“队列未绑定到执行,并提交给独立的队列块的任何特定的线程可以并行执行。”

至于你是否可以在调度队列之外使用调度信号(问题的另一部分),答案是肯定的,你可以。它们在Mach信号量的基础上实现,并且应该在任何地方工作。你可以在这里看到代码:

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

相关问题