gcd

dispatch_sync  等待队列任务完成再往下执行

dispatch_async 不等待队列任务完成往下执行

串行队列  加入该队列的任务按序执行,单个cpu处理

并行队列  加入该队列的任务按序开始执行,完成顺序不一定(此处注意并行和并发不一样)

dispatch_sync(main_queue) 会造成死锁-----viewDidLoad方法须等待dispatch_sync这个同步方法执行完后继续执行,而同步方法又在等待队列中排在他前面的任务viewDidLoad执行完成,,,,为什么同样都是在主线程执行,这样没有死锁。其实这个和线程没有关系,和队列有关系,只要不放在主队列就不会阻塞主队列上的操作(各种系统的UI方法),这个操作只是选择了合适的时机在主线程上跑了一下而已~

 

gcd中的野指针问题:

  在一个并发队列中,给一个对象赋值,在另一个队列中取值,就可能取出来的值是野指针。解决办法:可重入的gcd----dispatch_set_specific

转载于:https://www.cnblogs.com/diyigechengxu/p/9217444.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值