收集别人写的很好的关于多线程的文章
写的很不错的关于多线程的文章,反正我看了之后,清晰了很多。
http://www.cocoachina.com/ios/20170829/20404.html
任务的管理方式:
串行队列:所有任务会在一条线程中执行(有可能是当前线程也有可能是新开辟的线程),并且一个任务执行完成后,才开始执行下一个任务。(等待完成)
并行队列:可以开启多条线程并行执行任务(但不一定会开启新的线程),并且当一个任务放到指定线程开始执行时,下一个任务就可以开始执行了。等待发生)
任务的执行方式:
任务处理管理,还得执行。并且在GCD中并不能直接开辟线程执行任务,所以在任务加入队列之后,GCD给处理两种执行方式:同步和异步执行
同步执行:在当前线程执行任务,不会开辟新的线程,必须等到Block函数执行完毕后,dispatch函数才会返回。
异步执行:可以在新的线程中执行任务,但不一定会开辟新的线程。dispatch函数会立即返回,然后Block在后台异步执行。
同步执行不具有开辟新线程的能力
异步执行具有开辟新线程的能力