多线程-并发编程(1)-多线程原理

什么是进程?

在操作系统中运行的一个应用程序

比如同时打开QQ,WeChat;操作系统就会分别启动2个进程

每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内

在Windows中,可以通过任务管理器查看正在运行的进程

什么是线程?

1个进程要想执行任务,必须得有线程(每1个进程至少要有1个线程)

一个进程的所有任务都在线程中执行

比如使用酷狗播放音乐,使用迅雷下载文件,都需要在线程中执行

线程的串行

1个线程中任务的执行是串行的

如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务

在同一时间内,1个线程只能执行1个任务

比如在1个线程中下载3个文件(分别是文件A,文件B,文件C)

 多线程

1个进程中可以开启多个线程,所有线程可以并行(同时)执行不同的任务

多线程技术可以提高程序的执行效率

比如同时开启3个线程分别下载3个文件

多线程的原理

同一时间,CPU的1个核心只能处理1个线程 

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

 如果CPU调度线程的速度足够快,就造成了多线程并发执行的假象

如果是多核CPU,才是真正地实现了多个线程同时执行

如果线程非常多:

CPU会在N个线程之间调度,消耗大量的CPU资源,CPU会累死

从而导致每条线程被调度执行的频次会降低(线程的执行效率降低)

多线程的优缺点

优点:

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

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

缺点:

1.开启线程需要占用一定的内存空间,如果开启大量线程,会占用大量的内存空间

2.线程越多,CPU在调度线程上的开销就越大

3.程序设计更加复杂

猜你喜欢

转载自blog.csdn.net/weixin_59624686/article/details/123744109