多线程(NSThread、NSOperation、GCD)编程浅谈

一.基本概念
进程:
一个具有一定独立功能的程序关于某个数据集合的一次运行活动。可以理解成一个运行中的应用程序
线程:
程序执行流的最小单元,线程是进程中的一个实体。
同步:
只能在当前线程按先后顺序依次执行,不开启新线程。
异步:
可以在当前线程开启多个新线程执行,可不按顺序执行
队列:
装载线程任务的队形结构。
并发:
线程执行可以同时一起进行执行。
串行:
线程执行只能依次逐一先后有序的执行。
主线程:
一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”主线程的主要作用:显示/刷新UI界面处理UI事件(比如点击事件、滚动事件、拖拽事件等)

注意

  • 一个进程可有多个线程
  • 一个进程可有多个队列
  • 队列可分并发队列和串行队列
二.iOS多线程对比

1.NSThread:每个NSThread对象对应一个线程,真正最原始的线程。

优点:NSThread 轻量级最低,相对简单。

缺点:手动管理所有的线程活动,如生命周期、线程同步、睡眠等。

2.NSOperation:自带线程管理的抽象类。

优点:自带线程周期管理,操作上可更注重自己逻辑, 可以添加操作任务之间的依赖关系。

缺点:面向对象的抽象类,只能实现它或者使用它定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。

3.GCD:Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。

优点:分利用CPU多核,自动管理线程的生命周期, 最高效,避开并发陷阱。

缺点:基于C实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值