CGD是C语言的函数,是为了代替NSThread出现的多线程解决方案。
GCD的使用步骤:将任务(block),加入队列(queue);
GCD一共拥有4种队列:串行队列、并行队列、主队列、全局队列
GCD一共有两种任务执行方式:同步、异步
-------有点像排列组合,组合起来实现不同的功能,只需要记住每个队列与任务的特点,就能很好理解------
串行队列:
特点: 一次从队列中取出一个
实现:dispatch_queue_t queue = [dispatch_queue_create(“标识”,DISPATCH_QUEUE_SERAL)];
并行队列:
特点:一次从队列中取出多个
实现:dispatch_queue_t queue = [dispath_queue_create(" 标识","DISPATCH_QUEUE_CONCURRENT")];
主队列(里面的参数填写(0,0)):
特点:取出之后只在主线程中执行
实现:dispatch_queue_t queue = dispath_get_main_queue();
全局队列:
特点:同并行队列一样
实现:dispath_queue_t queue = dispath_get_global_queue(0,0);
同步任务:
特点:不开辟线程执行
dispatch_sync(queue,^{});
异步任务:
特点:开辟新线程执行
dispatch_async(queue,^{});