iOS 多线程开发
Posted chenxianming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 多线程开发相关的知识,希望对你有一定的参考价值。
本文主要是我对多线程的总结,当是给自己的个复习,也可以给别人一些参考。
还是从简单开始,先介绍一些概念性的东西,虽然简单,但是理解的深刻程度决定了是否能正解使用多线程的,还有用得有多好。
线程:线程是程序中一个单一的顺序控制流程,是线程中的一个实体,一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。
它有以下属性:
1、轻型实体 。2、独立调度和分派的基本单位。3、可并发执行。4、共享进程资源。
接下来就是在ios中能够使用的四种多线程编程方式:
(一)pthread
这里并不会很详细的去讲解它,百度上是这么说的:
POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32。
iOS开发中很少直接使用它。要使用它就得使用pthread.h中的一系列C接口,使用那些底层接口去创建,调度,管理线程,相对复杂,并且要考虑的问题会很多。
(二)NSThread
它是苹果对pthread的进一步封装,并且是面向对象的。封装后我们面对的是线程对象,而且它的接口也更好理解,使用起来更加直观和方便。
(三)Grand Central Dispatch(GCD).
它是苹果开发的一个多核编程的解决方法。使用GCD,它会自动管理线程的生命周期(创建线程、调度任务、销毁线程),完全不需要我们管理,我们关注重心只要在自己的任务,并把任务投入到相应的队列。GCD使用的也是 c语言
,结合使用了 Block,使得使用起来更加方便,而且灵活。
(四)NSOperation
NSOperation在iOS 4.x以后也是基本CGD封装的,它是CGD面向对象的封装,并且提供有用且线程安全的建立状态,优先级,依赖和取消等操作。
以上是关于iOS 多线程开发的主要内容,如果未能解决你的问题,请参考以下文章