iOS开发探索-多线程(NSThread、NSOperation、GCD)编程浅谈

转载 2016年05月31日 23:49:14


一、基本概念

进程: 一个具有一定独立功能的程序关于某个数据集合的一次运行活动。可以理解成一个运行中的应用程序。
线程:程序执行流的最小单元,线程是进程中的一个实体。
同步:只能在当前线程按先后顺序依次执行,不开启新线程。
异步:可以在当前线程开启多个新线程执行,可不按顺序执行。
队列:装载线程任务的队形结构。
并发:线程执行可以同时一起进行执行。
串行:线程执行只能依次逐一先后有序的执行。

主线程:
一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”
主线程的主要作用:
显示/刷新UI界面
处理UI事件(比如点击事件、滚动事件、拖拽事件等)
注意:
一个进程可有多个线程。
一个进程可有多个队列。
队列可分并发队列和串行队列。

二、iOS多线程对比

  1. NSThread
    每个NSThread对象对应一个线程,真正最原始的线程。
    1)优点:NSThread 轻量级最低,相对简单。
    2)缺点:手动管理所有的线程活动,如生命周期、线程同步、睡眠等。
  2. NSOperation
    自带线程管理的抽象类。
    1)优点:自带线程周期管理,操作上可更注重自己逻辑, 可以添加操作任务之间的依赖关系。
    2)缺点:面向对象的抽象类,只能实现它或者使用它定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。
  3. GCD
    Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。
    1)优点:充分利用CPU多核,自动管理线程的生命周期, 最高效,避开并发陷阱。
    2)缺点:基于C实现。
  4. 选择小结
    1)简单而安全的选择NSOperation实现多线程即可。
    2)处理大量并发数据,又追求性能效率的选择GCD。
    3)NSThread本人选择基本上是在做些小测试上使用,当然也可以基于此造个轮子。

以上笔者对多线程(NSThread、NSOperation、GCD)编程的简单总结。
参考原文:
http://www.tuicool.com/articles/eQjUj2
http://www.cocoachina.com/ios/20160129/15153.html


iOS开发中关于多线程的问题(NSOperationQueue,NSThread,GCD)

1.多线程的优点和缺点分别是什么? 答:优点:1、将耗时较长的操作(网络请求、图片下载、音频下载、数据库访问等)放在子线程中执行,可以防止主线程的卡死;2、可以发挥多核处理的优势,提升cpu的使用率...
  • X_codeWKH
  • X_codeWKH
  • 2016年04月06日 20:08
  • 1855

iOS多线程编程技术NSThread、Cocoa NSOperation、GCD三者使用详解

简介 iOS有三种多线程编程的技术,分别是: (一)NSThread (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatch)...
  • lgm252008
  • lgm252008
  • 2014年10月13日 09:18
  • 14320

iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现

转自出处:http://www.cnblogs.com/qingche/p/3496190.html
  • martin_liang
  • martin_liang
  • 2014年11月02日 18:19
  • 7368

iOS开发之多线程NSThread,NSOperation,GCD

一、多线程NSThread 1.多线程基础知识线程与进程的关系 (1). 线程是CPU执行任务的基本单位,一个进程能有多个线程,但同时只能执行一个任务 (2). 进程就是运行中的软件,是动态...
  • guojiezhi
  • guojiezhi
  • 2016年07月02日 15:29
  • 184

iOS开发之多线程——NSThread、NSOperation、GCD

一、概述 1、NSThread 优点:轻量级,使用简单; 缺点:需要自己管理线程的生命周期、线程同步,线程同步时对数据加锁会造成系统额外的开销。且难以控制线程的执行顺序和并发数量。 使用方法: ①、类...
  • chy305chy
  • chy305chy
  • 2015年05月05日 22:36
  • 216

iOS开发之多线程编程技术NSThread、NSOperation、GCD三者使用详解

三种方式的优缺点介绍: 1)NSThread  优点:NSThread 比其他两个轻量级  缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销  2)C...
  • Bonway_Huang
  • Bonway_Huang
  • 2015年12月14日 22:35
  • 11920

iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD

  • 2015年11月15日 17:56
  • 793KB
  • 下载

iOS之多线程开发(NSThread,NSOperation,GCD)

今天闲来无事,就来总结一下iOS中的多线程开发吧。 iOS有三种多线程编程的技术,分别是: 1.NSThread------每个NSThread对象对应一个线程,量级较轻(真正的多线程...
  • wei78008023
  • wei78008023
  • 2016年03月03日 17:32
  • 830

ios笔记-- 多线程应该知道的那几件事 GCD NSThread NSOperation

ios笔记-- 多线程应该知道的那几件事 GCD NSThread NSOperation 时间 2013-09-14 16:40:48  CSDN博客原文  http://blog.csdn....
  • leewolf130
  • leewolf130
  • 2015年05月05日 10:10
  • 746

ios笔记-多线程相关(phread、NSThread、GCD、NSOperation)

进程:            进程是指在系统中正在运行的一个应用程序。 线程:            1个进程要想执行任务,必须得有线程(每一个进程至少有1条线程)            1个...
  • chaoge321
  • chaoge321
  • 2016年03月08日 15:08
  • 167
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发探索-多线程(NSThread、NSOperation、GCD)编程浅谈
举报原因:
原因补充:

(最多只允许输入30个字)