什么是进程?
在操作系统中运行的一个应用程序
比如同时打开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.程序设计更加复杂