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);
posted @ 2016-04-28 12:18  lvable  阅读(233)  评论(0)    收藏  举报