美文网首页
iOS多线程有哪几种?

iOS多线程有哪几种?

作者: yxc木易星辰 | 来源:发表于2017-11-29 17:52 被阅读0次

1、多线程的分类

pthread

1、一套通用的多线程API

2、适用于Unix/Linux/Windows等系统

3、跨平台、可移植

4、使用难度大

5、使用语言:C语言

6、使用频率:几乎不适用

7、线程的生命周期:由开发者自己进行管理


NSThread

1、面向对象

2、简单易用,可直接操作线程

3、使用语言:OC语言

4、使用频率:偶尔使用

5、线程的生命周期:由开发者自己管理


GCD

1、替换NSThread等线程技术

2、充分利用了设备多核(自动)

3、使用语言:C语言

4、使用频率:经常使用

5、线程的生命周期:自动管理


NSOperation

1、基于GCD(底层是GCD)

2、比GCD多了一些简单实用的功能

3、使用更加面向对象

4、使用语言:OC语言

5、线程的生命周期:自动管理


多线程的原理:

    同一时间,CPU只能处理一条线程,只有一条线程在工作(执行),多线程并发(同时)执行,其实是CPU快速的在多条线程之间调度(切换),如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象思考:如果线程足够多,CPU会在N多条线程之间调度,CPU会累死,消耗大量的CPU资源每条线程被调度的频率会降低(线程的执行效率降低)。

多线程的有点:

能适当提高程序的执行效率;

能适当提高资源利用率(CPU、内存利用率)

多线程的缺点:

线程需要占用一定的内存空间(默认情况下主线程占用1M子线程占用512k),如果开启大量的线程,会占用大量的内存空间,降低程序的性能,线程越多CPU在调度线程上的开销就越大程序设计更加复杂:比如线程之间的通信、多线程的数据共享

GCD优点:

GCD是一个轻量级的数据结构,以底层实现隐藏的神奇技术,我们可以通过GCD和block轻松实现多线程编程,有时候,GCD相比其他系统提供的多线程方法更加有效。



相关文章

  • 多线程、Runloop、Runtime

    多线程 iOS多线程技术有哪几种方式pthread、NSThread、GCD、NSOperation 1. NSO...

  • iOS源码解析:多线程<一>

    iOS开发中经常要使用到多线程,在面试的时候也是经常问到,比较常见的面试题有下面这些: iOS的多线程方案有哪几种...

  • iOS 常见面试题--多线程

    iOS的多线程方案有哪几种?你更倾向于哪一种? 答:iOS多线程方案有以下四种 我们经常使用的就是 GCD 和 N...

  • iOS 多线程的基础

    多线程常见的面试题:1、你对多线程的理解?2、iOS多线程的方案有哪几种?你更倾向于哪一种?3、NSOperati...

  • iOS底层原理-多线程(GCD)

    多线程面试题 你理解的多线程?iOS的多线程方案有哪几种?你更倾向于哪一种?你在项目中用过 GCD 吗?GCD 的...

  • iOS 底层 day19 多线程基本概念 GCD线程死锁总结

    一. 关于多线程中的一些基本概念 1. iOS 中有几种多线程方案有哪几种?分别简述一下。 二. GCD 中的一...

  • 多线程

    你理解的多线程? iOS的多线程方案有哪几种?你更倾向于哪一种? 你在项目中用过 GCD 吗? GCD 的队列类型...

  • iOS-面试题 多线程(夯实基础学习笔记-温故知新4)

    你理解的多线程? iOS的多线程方案有哪几种?你更倾向于哪一种? 你在项目中用过 GCD 吗? GCD 的队列类型...

  • iOS-多线程

    面试题 你理解的多线程? iOS的多线程方案有哪几种?你更倾向于哪一种? 你在项目中用过 GCD 吗? GCD 的...

  • iOS多线程

    你理解的多线程? 多条线程同时工作,充分利用设备的多核,提高运行效率 iOS的多线程方案有哪几种?你更倾向于哪一种...

网友评论

      本文标题:iOS多线程有哪几种?

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