进程:
-
一个程序是由指令和数据构成的,指令需要cpu加载,数据需要内存存储。而进程就是用来管理内存,管理IO,管理指令的
-
进程相当于一个程序的实例,一个程序可以有多个实例(如浏览器),也可以只有一个实例(如qq音乐)
线程:
- 一个进程是由多个线程构成的
- 一个线程对应的一个指令流,由cpu进行加载
- 线程是最小的调度单元,用于cpu加载指令;进程是最小的资源分配单元。在windows中,进程相当于线程的容器
两者的区别:
- 进程之间是相互独立的,线程是属于进程内部的
- 进程拥有共享资源,如内存空间,供内部的线程共享
- 进程间的通信较复杂,同一台计算机的进程间通信称为IPC,不同计算机的进程间通信需要使用网络,如HTTP
- 线程间的通信较简单,且较轻量,线程间上下文切换成本要比进程间上下文切换成本低