多线程涉及的一些基本概念

xiaoxiao2021-02-28  63

在看多线程之前看一些基本概念

一:

线程:线程是CPU调度(执行任务)的最小单位;其实质就是一段代码(一个任务)

进程:系统中正在运行的一个应用程序;进程是CPU分配资源和调度的单位 两者的联系与区别: 1)线程是进程的组成部分,一个进程可以开启多个子线程,但是每1个进程至少要有1个线程 2)1个进程的所有任务都是在线程中执行的 3)同1个进程内的线程共享进程的资源 同步: 只能在当前线程按先后顺序依次执行,不开启新线程。 异步: 可以在当前线程开启多个新线程执行,可不按顺序执行。 队列: 装载线程任务的队形结构。 并发: 线程执行可以同时一起进行执行。 串行: 线程执行只能依次逐一先后有序的执行。

二:

多线程:一个程序开启多条线程,每条线程可以并行(同时)执行不同的任务

原理:

1)多个线程并发执行,其实质是CPU快速地在多条线程之间调度(切换)

2)当CPU调度线程的时间足够快,就会造成多线程并发执行的假象

优点:

1)能适当地提高程序的执行效率

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

缺点:

1)创建多线程是有开销的,包括内存空间和创建时间上的开销

2)如果开启大量线程,会降低程序的性能

3)线程越多,CPU在调度线程上的开销就越大

什么是主线程?主线程的作用和使用注意有哪些?

定义 iOS程序运行后,默认开启1条线程,称为“主线程” 作用 显示/刷新UI界面处理UI事件(点击、滚动、拖拽事件等) 注意 别将耗时操作放在主线程,耗时操作会卡住主线程,影响UI的流畅度

实现多线程的方法一共有哪些?

NSThread / GCD / NSOPeration

项目中一般在哪用到多线程?

多线程一般用于耗时操作,如:

网络请求上传,下载文件读取数据库文件操作大循环
转载请注明原文地址: https://www.6miu.com/read-44472.html

最新回复(0)