usr/include/dispatch - queue.h
#include <queue.h>
一、dispatch_queue_t###
Abstract note:
Dispatch queues invokes blocks submitted to them serially in FIFO order.
queue will only invoke one block in a time, but independent queues may each invokes their blocks concurrently with respect to each other.
翻译:
Dispatch队列按照他们串联顺序执行blocks。
队列一个时间点只能执行 一个 block,但独立的队列与其他队列可以并发执行自己的block。
Discussion:
Dispatch queues are lightweight objects to which blocks is may be submitted.
The system manages a loop of threads which process dispatch queues and invoke blocks submitted to them.
Conceptually, a dispatch queue may have its own thread of execution and interaction between queues is highly asynchronous.
翻译:
Dispatch对别是轻量级对象可以执行block。
系统管理这一些线程池,这些线程池执行dispatch队列和执行这些队列的block。
概念上讲,一个Dispatch有自己的执行线程,并且队列之间合作是高度异步的。
/* !DISPATCH_DECL宏作用是声明dispatch_queue类型,并且把它关联到dispatch_object基类中*/
DISPATCH_DECL(dispatch_queue);
二、dispatch_queue_t的所有API###
1.dispatch_async####
void
dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
2.dispatch_async_f####
void
dispatch_async_f(dispatch_queue_t queue,
void *context,
dispatch_function_t work);
3.dispatch_sync####
void
dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
4.dispatch_sync_f####
void
dispatch_sync_f(dispatch_queue_t queue,
void *context,
dispatch_function_t work);
5.dispatch_apply####
void
dispatch_apply(size_t iterations, dispatch_queue_t queue,
void (^block)(size_t));
6.dispatch_apply_f####
void
dispatch_apply_f(size_t iterations, dispatch_queue_t queue,
void *context,
void (*work)(void *, size_t));
7.dispatch_get_current_queue####
dispatch_queue_t
dispatch_get_current_queue(void);
8.dispatch_get_main_queue####
dispatch_queue_t
dispatch_get_main_queue(void)
{
return DISPATCH_GLOBAL_OBJECT(dispatch_queue_t, _dispatch_main_q);
}
9.dispatch_get_global_queue####
dispatch_queue_t
dispatch_get_global_queue(long identifier, unsigned long flags);

浙公网安备 33010602011771号