多线程操作之线程概念

来源:互联网 发布:arduino 单片机 编辑:程序博客网 时间:2024/05/20 10:15

1.什么是线程

1>1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程),一个应用程序至少是一个进程(如果程序过大系统会分配过个进程,比如操作系统)

2>进程分配资源,线程执行任务

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


2.线程的类型

1>串行

1个线程中的任务执行是串行,即如果要在一个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务(同一时间内1个线程只能执行一个任务)

也可以认为线程市金城中的 1条执行路径

比如一个线程中现在三个文件(A,B,C)


2>并行

1个进程中可以开辟多条线程,每条线程可以并行(同时)执行不同的任务

比如同时开辟3条线程,分别下载3个文件(文件A,文件B,文件C)

3.多线程原理

1>同一时间,cpu只能处理1条线程,只有1条线程在工作(执行)

2>多线程并发(同时执行),其实是cpu快速的在多条线程之间调度(切换)

3>如果cpu调度线程的时间足够快,就造成了多线程并发执行的假象

4>思考:如果线程非常多,会发生什么情况?

<1>cpu会在n条线程之间调度,cpu消耗会大大增加(一般情况下不会多于5条)

<2>每条线程被调度执行的频率会降低(线程的执行效率会降低)

4.多线程的优缺点

1>优点:

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

<2>能提高资源的利用率(cpu,内存利用率)

2>缺点

<1>开辟线程需要占用一定的内存空间(默认情况下,主线程占1M,子线程占用512KB),如果开辟大量的线程,会占用大量的内存空间降低程序的性能

<2>线程越多,cpu在调度线程上得开销就越大

<3>程序设计更加复杂:比如程序之间的通讯,多线程的数据共享

5.什么是主线程

一个iOS程序运行后,默认会开启一条线程称为"主线程"或者"UI线程"

每一个进程都有自己独立的主线程

主线程的作用:

显示\刷新UI界面

处理UI事件(比如点击事件,滚动事件,拖拽事件)


主线程的使用注意:

不要将比较耗时的操作放入主线程中,否则会卡主线程


1 0
原创粉丝点击