iOS开发之多线程技术(NSThread、OperationQueue、GCD)

523 查看

  在前面的博客中如果用到了异步请求的话,也是用到的第三方的东西,没有正儿八经的用过iOS中多线程的东西。其实多线程的东西还是蛮重要的,如果对于之前学过操作系统的小伙伴来说,理解多线程的东西还是比较容易的,今天就做一个小的demo来详细的了解一下iOS中的多线程的东西。可能下面的东西会比较枯燥,但还是比较实用的。

多线程用的还是比较多的,废话少说了,下面的两张截图是今天我们实验的最终结果,应该是比较全的,小伙伴们由图来分析具体的功能吧:

功能说明:

1、点击同步请求图片,观察整个UI界面的变化,并点击测试按钮,红色是否会变成绿色。

2、NSThread按钮,是由NSThread方式创建线程并执行相应的操作。

3、Block操作按钮是用Block创建操作,并在操作队列中执行,下面的是Invocation操作

4、serial是GCD中的串行队列,concurrent是GCD中的并行队列

好啦,上面的咸蛋先到这儿,代码该走起啦。

  一、准备阶段

1.不管使用代码写,还是storyboard或者xib等,先把上面所需的控件初始化好以便使用

2.点击测试UI按钮,改变下边label的颜色的代码如下:

 

3.从网络上获取图片,并使用主线程显示进程调用情况

 

 

4.上面的用到了主线程来调用updateTextViewWithString方法,因为只有主线程才能更新UI,updateTextViewWithString:这个方法负责把线程的执行信息显示在View上,代码如下:

 

5.把请求完的图片加载到ImageView上

 

6.加载图片的,也就是请求数据后在ImageView上显示