如何理解线程和进程

如何理解线程和进程
单核CPU时,当我们运行一个.exe文件时,内存中会开辟出一块空间,这里面是这个应用程序运行所需要的一些资源环境,所以说进程是操作系统分配资源的基本单位。

对于操作系统来说,它看不到这样的进程,它只能获得这个进程中的线程,这些线程要做什么,执行什么指令,都由CPU去调度执行。所以线程是CPU调度和执行的基本单位。

比如在一段时间里a线程执行,时间片用完后,挂起,存入缓存区,下一个b线程获得时间片执行,时间到了,再放缓存区,并把a线程取出来接着上一次执行的位置继续执行。单核CPU时的多线程并发执行其实是个假象,实际是CPU快速处理线程之间的切换,给我们一种多个线程同时执行的错觉。

那么总结一下,到底什么是进程?什么是线程?
进程对于操作系统来说,是一个静态概念,而线程是动态的。
进程是操作系统分配资源的基本单位,进程在内存中占有一块空间,里面保存着很多资源,这个进程中的线程共享这些资源。
线程是CPU调度和执行的基本单位,线程的执行才真正的使程序运行起来。