您的位置:首页 > 其它

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