iOS多线程基础

一、基本概念

1.计算机操作系统都有的基本概念,以下概念简单方式来描述。

1 进程: 一个具有一定独立功能的程序关于某个数据集合的一次运行活动。可以理解成一个运行中的应用程序。
2 线程: 程序执行流的最小单元,线程是进程中的一个实体。
3 队列: 装载线程任务的队形结构。

2.苹果官方定义

The term thread is used to refer to a separate path of execution for code.
The term process is used to refer to a running executable, which can encompass multiple threads.

线程用于指代一个独立执行的代码路径
进程用于指代一个可执行程序,他可以包含多个线程

Paste_Image.png

3.同步和异步主要影响:能不能开启新的线程

1 同步:只是在当前线程中执行任务,不具备开启新线程的能力
2 异步:可以在新的线程中执行任务,具备开启新线程的能力

4.并发和串行主要影响:任务的执行方式

1 并发:多个任务并发(同时)执行
2 串行:一个任务执行完毕后,再执行下一个任务

注意:
  1. 一个进程可有多个线程。
  2. 一个进程可有多个队列。
  3. 队列可分并发队列和串行队列。

二、iOS多线程对比

  1. NSThread 更多
每个NSThread对象对应一个线程,真正最原始的线程。
1)优点:NSThread 轻量级最低,相对简单。
2)缺点:手动管理所有的线程活动,如生命周期、线程同步、睡眠等。
  1. NSOperation
自带线程管理的抽象类。
1)优点:自带线程周期管理,操作上可更注重自己逻辑。

2)缺点:面向对象的抽象类,只能实现它或者使用它定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。
  1. GCD
    参考链接
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。

1)优点:最高效,避开并发陷阱。

2)缺点:基于C实现。

  1. 选择小结
1)简单而安全的选择NSOperation实现多线程即可。
2)处理大量并发数据,又追求性能效率的选择GCD。
3)NSThread本人选择基本上是在做些小测试上使用,当然也可以基于此造个轮子。

更多精彩内容请关注“IT实战联盟”哦~~~


IT实战联盟.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 多线程,一直是解决内存暴增方法的重点,图片、视频、大量数据的的下载现在总结一下 基本概念 进程:应用程序的执行实例...
    艳晓阅读 309评论 0 0
  • 1.基本概念 进程: 一个具有一定独立功能的程序关于某个数据集合的一次运行活动。可以理解成一个运行中的应用程序。 ...
    iOS学末阅读 1,641评论 2 36
  • 我不是模特,更不是模范。 我不是样品,更不是榜样。 我是不是好人! 跟你没关系! 别给我贴标签, 别给我下定义! ...
    韩悠悠悠阅读 1,196评论 16 24
  • hive系列之六-hive元数据表结构详解 Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要...
    raincoffee阅读 1,387评论 0 4
  • EPISODE 18欢愉不长在·无言以对 “你们在干什么?” 房间的门被重重地推开,一声怒吼打断了挣扎中的唇齿。朱...
    紫上薰阅读 722评论 0 49

友情链接更多精彩内容