iOS常用的多线程知识点总结
2017-03-29 本文已影响4人
酒深巷子Ya
首先科普一下常见的几个名词,这些名词我们经常见,但容易搞混,希望可以帮到大家。
串行:原理是一个接一个的先进先出的进行执行(FIFO)只会开启一条线程
![](https://img.haomeiwen.com/i3865388/b5b33fd8a93830cf.png)
输出结果
![](https://img.haomeiwen.com/i3865388/f37b0b0f86bf8fb4.png)
并行:任务以FIFO从序列中移除,然后并发运行,无顺序。它会自动开启多个线程同时执行任务
![](https://img.haomeiwen.com/i3865388/104d67ca8ead55d9.png)
输出结果
![](https://img.haomeiwen.com/i3865388/3141ee867e878b20.png)
同步:同步会阻塞当前线程,有block的时候会先执行完block块 再往下运行(不开辟线程)
异步:异步不会阻塞当前线程,有block块的时候会先执行完当前线程的任务 再执行block块(开辟线程,线程的个数系统决定)
![](https://img.haomeiwen.com/i3865388/e19c589e93b2f848.png)
dispatch_group_t: //// dispatch_group_notify:
![](https://img.haomeiwen.com/i3865388/42e648880547418c.png)
输出结果:
![](https://img.haomeiwen.com/i3865388/4395f14e9c85a718.png)
dispatch_queue_t:
![](https://img.haomeiwen.com/i3865388/56202a605f36b1a9.png)
输出结果:
![](https://img.haomeiwen.com/i3865388/896b77a06e8d1a30.png)
dispatch_once: 单例模式
dispatch_after:延时操作
线程间的通信:
1.GCD
![](https://img.haomeiwen.com/i3865388/fec47e4508e47ba1.png)
2.NSThread
![](https://img.haomeiwen.com/i3865388/7a4d86a88e3cbc78.png)