iOS日常经验总结

GCD梳理与总结(一)队列、任务、执行任务的方式

2020-08-14  本文已影响0人  牧羊的诗人

GCD是iOS开发中常用的多线程技术,具有以下优点

但是由于其知识点细碎,API繁多,所以笔者决定抽空以写博客的方式对GCD进行梳理,总结,归纳和再学习。
本章Demo

首先我们来谈谈几个基本概念

任务

任务就是要执行的操作,也就是你在线程中执行的那段代码。在 GCD 中是放在 block 中的。

队列

队列有两种:1.串行队列。2.并发队列。

执行队列的方式

讲完了这三个基本概念后,可能概念上有点绕,也有点懵。那么笔者来打个比方。我以大家小时候都玩过的四驱车举例。

打个比方:

就比如小时后玩的四驱车,队列就相当于跑道,串行队列就是一条跑道,并发队列就是多条跑道。四驱车就相当于任务。基本规则就是每条跑道上只能有一辆车在上面跑。串行队列由于只有一条跑道,所以每次只能跑一辆车(一个任务),等这辆车跑完,别的车(任务)才能跑。并发队列由于有多个跑道,所以可以供多辆车(多个任务)一起跑。

API

理解完基本概念后我们再来梳理一下相关的API。

   //currentThread获取当前的线程对象
   NSThread *thread = [NSThread currentThread];

  //isMainThread获取当前线程是否为主线程
   BOOL isMain = [NSThread isMainThread];
上一篇 下一篇

猜你喜欢

热点阅读