GCD简介

本文介绍了GCD(Grand Central Dispatch)的基本概念及其在iOS开发中的应用,包括任务与队列的概念、同步与异步的区别、并发与串行队列的特点,并探讨了线程管理中的关键问题。

GCD所有API都在lib dispatch.dylib
GCD有2个核心概念
任务:执行什么操作.
队列:用来存放任务的.
GCD的使用
定制任务
将任务添加到队列中
GCD中有2个用来执行任务的函数
用同步的方式执行任务
dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
queue队列
block;任务
用异步的方式执行任务
dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
同步和异步的区别

GCD队列:
并发队列:并发只有在异步函数中有效
串行队列:让任务一个接一个的执行
同步和异步主要影响:能不能开启新的线程
同步:只能在当前线程中执行任务,不具备开启新线程的能力
异步:可以在新的线程中执行任务,具备开启新线程的能力
并发和串行主要影响:任务的执行方式
并发:多个任务并发(同时)执行
串行:一个任务执行完毕后,再执行下一个任务

&&&&&&&&&&&&&&&&&&&
pthread
GCD 常用
NSOperation
互斥锁:多条线程抢夺同一块资源
线程同步:多条线程在同一条线上执行(按顺序的执行任务) 为了防止多个线程抢夺同一个资源造成的数据安全问题 @synchronized(self){
// 被锁住的代码
}
线程注意点
1不要同时开太多的线程(1-3条线程即可,不要超过5条)
线程概念:
主线程:UI线程,显示,刷新UI界面,处理UI控件的事件
子线程:后台线程,异步线程
不要把耗时操作放在主线程,要放在子线程中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值