码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 多线程开发

时间:2016-06-11 17:16:48      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

   本文主要是我对多线程的总结,当是给自己的个复习,也可以给别人一些参考。


 

  还是从简单开始,先介绍一些概念性的东西,虽然简单,但是理解的深刻程度决定了是否能正解使用多线程的,还有用得有多好。

  线程:线程是程序中一个单一的顺序控制流程,是线程中的一个实体,一个标准的线程由线程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 多线程开发

标签:

原文地址:http://www.cnblogs.com/chenxianming/p/5575443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!