iOS GCD

作者: iOS程序媛ing | 来源:发表于2018-03-19 17:53 被阅读6次

1.1、线程、任务、队列

线程----程序执行任务的最小调度单元

任务----说白了就是一段代码,block中要执行的内容

队列----存储任务的数组

1.2串行、并行、同步、异步

1⃣️异步执行意味着

•可以开辟线程

•任务可以绕过先不执行,回头再执行

2⃣️同步执行意味着

•不能开辟线程

•任务创建后必须执行完之后,才能向下执行

3⃣️并行队列意味着

•任务可以不用相互等待,同时执行

4⃣️串行队列意味着

•任务按添加进队列的顺序执行,执行完一个再执行另一个

•异步任务具备开辟线程的能力

•同步任务不具备开辟线程的能力

1.2.1、串行队列+异步任务

打印结果

由上可见:开辟一条线程,异步任务可过后执行

1.2.2、串行队列+同步任务

打印结果

由上可见,未开辟线程,在主线程执行,按顺序执行任务

1.2.3、并行队列+异步任务

打印结果

由上可见,开辟了新的线程,任务同步执行

1.2.4、并行队列+同步任务

运行结果

由上可见,同步任务不具备开辟线程功能,任务按顺序执行

1.2.5、主队列+同步任务

运行结果

由上可见,在主线程添加同步任务,线程阻塞,导致崩溃

1.2.6、主线程+异步任务

运行结果

由上可见,主线程+异步任务,不开辟线程,任务按顺序执行

相关文章

网友评论

      本文标题:iOS GCD

      本文链接:https://www.haomeiwen.com/subject/zuhrqftx.html