1、dispatch_sync(queue, block)同步提交job
2、dispatch_async (queue, block) 异步提交job
3、dispatch_after(time, queue, block) 同步延迟提交job
其中第一个参数类型是dispatch_queue_t,就是一个表示队列的数据结构typedef struct dispatch_queue_s *dispatch_queue_t;;
block就是表示任务的Blocktypedef void (^dispatch_block_t)( void);。
4、dispatch_async和dispatch_after函数是异步非阻塞的,调用后会立刻返回,工作由系统在线程池中分配线程去执行工作。
5、dispatch_sync是阻塞式的,会一直等到添加的工作完成后才会返回。
6、除了添加Block到Dispatch Queue,还有添加函数到Dispatch Queue的接口,例如dispatch_async对应的有dispatch_async_f:
dispatch_async_f(dispatch_queue_t queue,
void *context,
dispatch_function_t work);
其中第三个参数就是个函数指针,即typedef void (*dispatch_function_t)(void *);;第二个参数是传给这个函数的参数。