1.根本区别(操作系统资源管理方式不同):
进程是 os 资源分配的基本单位,线程是任务调度和执行的基本单位;
2.开销方面:
每个进程都有独立的代码和数据空间(即程序上下文),程序之间的切换会有较大的开销;
线程可以看作轻量级进程,同一类线程之间共享代码和数据空间,每个线程都有自己独立的运行栈和计数器,线程之间切换的开销小;
3.所处环境:
os 中能同时运行多个进程;
一个进程中有多个线程(通过 CPU 调度,每个时间片只有一个线程执行)
4.内存分配:
每个进程有自己独立的内存空间;
线程之间共享其所属进程的内存资源,除了 CPU 外
5.包含关系:
线程是进程的一部分;一个进程至少包含一个线程,或是多个线程;
6.运行方式:
进程独立运行;
线程无法独立运行,必须依赖于应用程序,由应用程序提供多个线程指控;
7.并发性:
同一个进程中的多个线程之间可以并发执行;


↙↙↙阅读原文可查看相关链接,并与作者交流