什么是多线程呢?多线程有什么用呢?我们先看看与之相关的各种简单概念。
第一个我们先说说什么是进程,进程顾名思义就是当前程序中正在跑的应用程序,比如说迅雷啊,QQ啊等应用程序。而一个进程要想执行各种任务,就必须要有线程(其中一个进程至少要有一条线程),一个进程中所有任务其实都在线程上执行。
进程
然而每一条线程任务的执行是串行的,所有如果要在一个线程中执行多个任务,那么只能一个一个顺序执行。所以可以认为线程是进程中的一条执行路径。
线程
多线程
一个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务
-多线程的原理:
执行原理
同一时间,单核CPU只能处理一条线程,只有一条线程工作
多线程并发(同时)执行:其实是CPU快速地在多条线程之间调度(切换)
多线程的优缺点
优点:
能适当提高执行效率,提高资源的利用率
缺点:线程过多会消耗时间和空间资源,降低执行效率,开一条子线程512KB,主线程1M,开一条线程大概90毫秒。
如果开启大量线程,会降低程序的性能,线程越多,同一时间CPU的调度频率越少
程序设计更复杂:比如线程之间的通信和线程之间的数据共享等
主线程:程序开启后默认会开启一个线程叫主线程,又叫UI线程,主要处理UI事件,用户交互,界面刷新等任务
说了半天多线主要是用来干嘛的呢?其实说白了就是将耗时任务放到子线程中处理,主线程中主要处理用户的点击,交互,刷新UI等,用户就不会觉得的卡了,增强用户体验,和执行效率也在无形中获得提升,你说他屌不屌,一般我们在iOS开发中的多线程实现方案大概有以下4种。
iOS中多线程的实现











网友评论