iOS 多线程(队列、任务、串行、并行、同步、异步)

 

1、GCD有两个用来执行任务的函数
  • 同步(sync):只能在当前线程中执行任务,不具备开启新线程的能力,任务立刻马上执行,会阻塞当前线程并等待 Block中的任务执行完毕dispatch函数才会返回,然后当前线程才会继续往下运行。
  • 异步(async):可以在新的线程中执行任务,具备开启线程的能力,但不一定会开启新的线程,dispatch函数会立即返回, 然后Block在后台异步执行,即当前线程会直接往下执行,不会阻塞当前线程。
2、队列

用于存放任务,分为串行队列和并行队列。

  • 串行队列:所有任务会在一条线程中执行(有可能是当前线程也有可能是新开辟的线程),并且一个任务执行完毕后,才开始执行下一个任务。

  • 并行队列:可以开启多条线程并行执行任务(但不一定会开启新的线程),并且当一个任务放到指定线程开始执行时,下一个任务就可以开始执行了

 


 

 

https://www.jianshu.com/p/65fa622e4f20 

posted @ 2017-08-29 10:46  HEJJY  阅读(571)  评论(0编辑  收藏  举报