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 多线程开发的主要内容,如果未能解决你的问题,请参考以下文章

iOS多线程与网络开发之多线程NSThread

iOS开发多线程篇—线程安全

iOS开发:多线程技术概述

iOS开发多线程篇 03 —线程安全

iOS多线程与网络开发之解析json数据

iOS开发多线程--技术方案