GCD线程间的通信,与队列组的使用

转自宏创学院http://www.hcios.com/archives/2483

  • 1:线程间通信简介
    在涉及网络数据获取的过程中,一般会使用异步任务+并行队列进行数据获取,当获取到网络数据以后,需要在主线程中把数据显示到屏幕上,因此就涉及到线程间的通信,在并发队列中的任务,还可以嵌套子任务,嵌套的子任务可以设置为在主线程中执行的任务

  • 2:例子:在请求一张图片的时候,将请求任务放在并行队列中,等图片请求完成以后则回到主线程将图片显示出来

GCD线程间的通信,与队列组的使用_第1张图片
屏幕快照 2016-03-15 14.09.23.png

队列组(很重要)

  • 在使用GCD进行任务操作时,有时候希望若干个任务执行之间有先后执行的依赖顺序,例如:A,B两个异步任务完成后,再去完成C任务,这时就可以使用队列组 dispatch group来完成

  • 队列组基本介绍
    在串行队列中,任务是按照进入队列的顺序依次执行,依次任务与任务之间是有明确地先后顺序的,但是对于并行队列的任务来说!由于任务被自动分配到不同的线程中执行,因此任务完成的顺序是不确定的.如果希望给并行队列中的任务设置执行顺序的时候,例如:当任务A和任务B任务完成以后,再去完成任务C!此时就需要使用到任务组(dispatch_group)

  • 队列组常用操作

GCD线程间的通信,与队列组的使用_第2张图片
屏幕快照 2016-03-15 14.25.36.png
  • 示范例子 点击按钮先异步下载显示两张图片,两张图片都下载完成以后提示下载完成
GCD线程间的通信,与队列组的使用_第3张图片
屏幕快照 2016-03-16 11.03.46.png

你可能感兴趣的:(GCD线程间的通信,与队列组的使用)