美文网首页将来跳槽用
多线程的底层实现

多线程的底层实现

作者: YANG1220 | 来源:发表于2016-11-11 12:32 被阅读0次

首先线程是什么?

进程要想执行任务,必须要有线程,而且每个进程至少要有一条线程

线程是进程的基本执行单元,进程中的所有任务都在线程中执行,比如酷狗播放音乐,使用迅雷下载电影,都要在线程中执行

程序启动的时候它会默认开启一条线程

一个进程中可以有多个线程

其次什么是多线程

一个进程中可以开启多条线程,多条线程可以”同时”执行不同的任务

有时候程序会出现阻塞的问题,而多线程就可以解决程序阻塞这个问题

多线程的有点就是能够提高程序的执行效率,给用户良好的用户体验

多线程的执行原理

单核 CPU 同一时间只能处理一个线程,只有一个线程在执行任务

多线程的同时执行本质上就是 CPU 在多条线程之间来回的快速切换,当CPU 的速度足够快的时候,就造成了多线程同时执行的假象,如果线程非常多, CPU 会在多条线程之间不断的调度任务,就会造成性能低下

实现多线程有多种方案

比如 pthread, 这是一套通用的多线程 API, 适用于多个平台,难度比较大,需要程序员管理线程的生命周期,所以就几乎不用

NSThread, 使用起来更加的面对对象,简单易用,可以直接操作线程对象,需要程序员管理线程的生命周期,用的也不太多

GCD的出现是为了替代 NSThread 等线程技术,是纯 C 语言的框架,它的生命周期不需要程序员管理,它会自动管理,所以现在使用的场景比较多,性能最好,代码也最简单

NSOperation 是封装了 GCD, 比 GCD 简单实用,它的周期也是自动管理不需要程序员去管理,使用的也比较多

相关文章

  • iOS面试题--网络多线程

    一、多线程的底层实现? 1>线程:Mach是第一个以多线程方式处理任务的系统,因此多线程的底层实现机制是基于Mac...

  • 多线程的底层实现

    首先线程是什么? 进程要想执行任务,必须要有线程,而且每个进程至少要有一条线程 线程是进程的基本执行单元,进程中的...

  • iOS-面试题3-多线程

    目录: GCD 加锁方案 一. GCD 说一下iOS中多线程的实现方案 ① 这些多线程方案的底层都是依赖pthre...

  • iOS面试题锦集(一)——多线程网络

    1. 多线程的底层实现? 首先搞清楚什么是线程、什么是多线程; Mach(国际发音:[mʌk])是第一个以多线程方...

  • 【code_小马】多线程的底层实现

    面试问你:请讲一下多线程的底层实现,还有线程之间的通信怎么实现。 IOS的多线程,一般分为三种方式: NSThre...

  • iOS面试题01-多线程网络(★★★)

    《2018 iOS面试题系列》 一、多线程的底层实现? 提示:1> 首先搞清楚什么是线程、什么是多线程2>Mach...

  • 多线程的方法

    多线程分为GCD,NSOperation和NSThread。GCD底层是用C语言实现的,NSOperation是对...

  • iOS 多线程

    一、多线程的底层实现? 提示:1> 首先搞清楚什么是线程、什么是多线程2>Mach是第一个以多线程方式处理任务的系...

  • 01-关于多线程&网络

    1.多线程的底层实现? 1>首先搞清楚什么是线程、什么是多线程 2> Mach是第一个以多线程方式处理任务的系统,...

  • 多线程的总结

    1.多线程的底层实现? 1>首先搞清楚什么是线程、什么是多线程 2> Mach是第一个以多线程方式处理任务的系统,...

网友评论

    本文标题:多线程的底层实现

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