多线程GCD-补充

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、除了添加BlockDispatch 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 *);;第二个参数是传给这个函数的参数。

你可能感兴趣的:(多线程GCD-补充)