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/
本文版权归作者和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作!