进程、线程、并发、并行区别
一、进程
对于多任务的操作系统来说,可以同时执行多个任务,每个任务就是一个进程。比如说,你在写代码的时候,也可以听听音乐,同时打开浏览器搜索资料,这些软件就是不同的进程。
二、线程
对于每个进程来说,至少要包含一个线程,线程是CPU调度和执行的基本单位,比如你在听音乐的时候,可以一边听,一边在播放器中进行音乐的下载,这分别是由一个进程下的两个线程来执行的。
三、并发
对于一些古老的计算机来说,在只有一个核心的情况下,在播放器中听音乐和下载音乐是同时进行的,但并没有出现卡顿,这是因为CPU在执行多线程的时候采用时间分片,由于CPU切换非常快,对于人来说基本感觉不到,其实在某一个时间点上CPU只会执行一个线程,这种多个线程切换执行就叫做并发。
四、并行
现在的计算机中的CPU一般都有多个核心,这样在执行多线程任务的时候就可以多个核一起执行,这就是并行。
五、总结
进程:其实是操作系统中一个正在运行的程序。
线程:线程是CPU调度的最小单位,是在线程内实现多任务的保证。
并发:一个CPU核心通过时间切换执行多个线程。
并行:多个CPU核心同时执行多个线程。