iOS开发-多线程编程技术(Thread、Cocoa operations、GCD)


简介

在软件开发中,多线程编程技术被广泛应用,相信多线程任务对我们来说已经不再陌生了。有了多线程技术,我们可以同做多个事情,而不是一个一个任务地进行。比如:前端和后台作交互、大任务(需要耗费一定的时间和资源)等等。也就是说,我们可以使用线程把占据时间长的任务放到后台中处理,而不影响到用户的使用。

线程间通讯

有一个非常重要的队列,就是主队列。在这个队列中处理多点触控及所有与UI相关操作等等。它非常特殊,原因有两点。一是我们绝对不想它阻塞,我们不会将需要执行很长时间的任务放在主队列上执行。二是我们将其用于所有与UI相关的同步,也就是线程间通讯需要注意的地方。所有有可能会使屏幕UI发生变化的,都应放在主队列上执行。

线程的定义:

每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。

转自百度百科:多线程

如果熟悉多线程编程技术这一块的朋友们,可以去看关于多线程安全的文章,是我写的另一篇文章”iOS开发-多线程开发之线程安全篇“;

IOS支持的多线程技术:

一、Thread:

1)显式创建线程:NSThreed

2)隐式创建线程:NSObject

二、Cocoa operations:

NSOperation类是一个抽象类,因为我们必须使用它的两个子类。

  1)NSInvocationOperation 

2)NSBlockOperation

————————————————————————————

3)NSOperationQueue(继承于NSObject)

三、Grand Central Dispatch (GCD):

1)GCD的创建

2)重复执行线程及一次性执行:dispatch_apply & dispatch_once

3)操作(串行)队列:dispatch_queue_create

4)GCD群组通知:dispatch_group_t

5)GCD实现计时器

6)后台运行

7)延迟执行

四、比较多线程技术

一、Thread

我们可以使用NSTherad或NSObject类去调用:

iOS多线程开发

GCD的另一个用处是可以让程序在后台较长久的运行。

全面掌握iOS多线程攻略 —— PS:这个攻略较多,但是有很多重复的内容。

iOS多线程的初步研究(一)-- NSThread


博文作者:GarveyCalvin

博文出处:http://www.cnblogs.com/GarveyCalvin/

本文版权归作者和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作!