美文网首页
三种多线程技术的对比

三种多线程技术的对比

作者: 一个半吊子工程师 | 来源:发表于2020-10-10 10:42 被阅读0次

NSThread:

优点:NSThread 比其他两个轻量级,使用简单

缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销

NSOperation:

优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上

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

GCD(Grand Central Dispatch):

优点:GCD是由苹果开发的一个多核编程的解决方案。iOS4.0+才能使用,是替代NSThread, NSOperation的高效和强大的技术。最高效,避开并发陷阱。

缺点:GCD是基于C语言的

NSOperation和GCD的区别
  • GCD底层使用C语言编写高效、NSOperation是对GCD的面向对象的封装。对于特殊需求,如取消任务、设置任务优先级、任务状态监听,NSOperation使用起来更加方便。
  • NSOperation可以设置依赖关系,而GCD只能通过dispatch_barrier_async实现
  • NSOperation可以通过KVO观察当前operation执行状态(执行/取消)
  • NSOperation可以设置自身优先级(queuePriority)。GCD只能设置队列优先级(DISPATCH_QUEUE_PRIORITY_DEFAULT),无法在执行的block中设置优先级
  • NSOperation可以自定义operation如NSInvationOperation/NSBlockOperation,而GCD执行任务可以自定义封装但没有那么高的代码复用度
    -GCD高效,NSOperation开销相对高

相关文章

  • 三种多线程技术的对比

    NSThread: 优点:NSThread 比其他两个轻量级,使用简单 缺点:需要自己管理线程的生命周期、线程同步...

  • Java多线程 ----(1)多线程基础

    1、什么是多线程和使用多线程的意义2、多线程基础知识点框架图3、实现多线程的三种方式4、三种方式对比 1、什么是多...

  • 多线程

    iOS多线程简介 1、iOS有三种多线程技术NSThread、NSOperation、GCD。三种方式依次抽象程度...

  • 多线程整理

    多线程概念 先通过一幅图来了解一下多线程 多线程技术对比

  • ios多线程

    多线程的概括 iOS有三种多线程编程的技术,分别是:NSThread,Cocoa NSOperation,GCD这...

  • JAVA基础—创建线程的3种方式

    线程的生命周期(五种状态) 创建线程的三种方式对比 1. 创建多线程-继承Thread 运行结果 2. 创建多线程...

  • 问题:请简单介绍下iOS的多线程

    iOS的三种多线程技术 NSThread:每个NSThread对象对应一个线程,量级较轻(真正的多线程) NSOp...

  • iOS__多线程

    iOS多线程 之NSThread的使用 1、简介: 1.1 iOS有三种多线程编程的技术,分别是: 1.、NSTh...

  • iOS 3种多线程对比

    1. iOS三种多线程技术 NSThread每个NSThread对象对应一个线程,量级较轻(真正的多线程) NSO...

  • iOS-NSThread、NSOperation和GCD区别

    1.iOS的三种多线程技术 1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程) ...

网友评论

      本文标题:三种多线程技术的对比

      本文链接:https://www.haomeiwen.com/subject/ucqpsktx.html