多线程的底层实现

首先线程是什么?

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

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

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

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

其次什么是多线程

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

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

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

多线程的执行原理

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

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

实现多线程有多种方案

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容