GCD简介
2017-11-03 11:28
148 查看
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控件的事件
子线程:后台线程,异步线程
不要把耗时操作放在主线程,要放在子线程中
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控件的事件
子线程:后台线程,异步线程
不要把耗时操作放在主线程,要放在子线程中