Eri*_*ner 6 cocoa objective-c grand-central-dispatch
默认情况下每个线程都有一个关联的调度队列吗?我只是想知道我是否可以dispatch_semaphore在每个上下文中使用s,或者如果我需要将它包装在具有已定义队列的显式调度调用中.
它并不像你的问题所暗示的那样真正起作用.默认情况下,有一个与主线程关联的主调度队列,以及三个并发的全局队列(分别为高,缺省和低优先级).
并发队列管理自己的线程资源,而不是与任何特定线程相关联.
事实上,它在手册页上非常具体地说dispatch_queue_create():
"队列不受任何特定执行线程的约束,提交给独立队列的块可以并发执行."
至于你是否可以在调度队列之外使用调度信号量(问题的另一部分),答案是肯定的,你可以.它们是在Mach信号量之上实现的,应该可以在任何地方使用.你可以在这里看到代码:
http://opensource.apple.com/source/libdispatch/libdispatch-84.5.5/src/semaphore.c