IOS 对GCD 的理解。

网上已经有非常多得,GCD如何操作的文章。 

今天,就对这几天,对它的阅读,实验,做一个总结。

GCD 是iOS封装好了的,多线程处理类库。

它的存在,简略了程序员很多麻烦的各种锁的操作,咱们对线程加锁,无非是想让,某个线程在另一个线程之前执行,或者其他的一些需求。GCD已经给我们实现了,不再需要加锁。


GCD有三种队列  :

1、 主线程队列   : dispatch_get_main_queue();

一般用来刷新UI

2、并行队列  : dispatch_get_global_queue();

提交到并行队列的操作,将会逐一开始执行(可以理解为同时),但是由于操作的时间长短不一,它们结束的时间,并没有一定的顺序可言。

3、串行队列  :dispatch_queue_create(,);

与并行队列对应,这个串行队列,执行的方式,就是按照提交的顺序,一个一个执行,第一个执行完成之后,在进行第二个执行。 一般若对操作代码,有先后顺序的,用串行队列比较方便。


提交方式:

这里所谓的提交方式,就是指,把需要在线程中执行的代码,根据情况,提交给上述的三种队列中的一种

1、异步提交 

2、同步提交


我们要知道,提交方式,影响的是我们开辟的线程,它的父线程,比如说:我们在A线程中 dispatch_asy 了一个队列(B线程),那么我们的提交方式,将会影响到A线程,而不是我们创建的子线程(B线程)。

如何影响的:如果是异步提交,那么我们的A线程,它将正常运行,没有被阻塞。  如果是同步提交,那么我们的A线程将会被B线程所阻塞。既:等到B线程完成之后,A才会继续下去。


小小的总结一下,队列的类型,影响的是我们创建线程它的执行方式; 而提交方式,影响的是我们创建线程,它的父线程是否会阻塞。

谢谢大家的阅读。  如果有错误的地方,请您毫不吝啬的指出,谢谢。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值