多线程-GCD

本文深入探讨了GCD(Grand Central Dispatch)在iOS开发中的应用,包括其核心概念、队列类型(串行、并行、主队列、全局队列)以及任务执行方式(同步、异步)。详细介绍了如何使用GCD实现高效的并发编程,特别强调了不同队列和任务执行方式之间的区别与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,^{});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值