关于进程的概念可以查看上一篇文章:进程概念(易懂)-CSDN博客
进程既然已经可以实现并发和并行,那为什么还需要线程呢?原因就在于进程(是操作系统资源分配的基本单位),频繁的创建/销毁进程成本非常高.
而多个线程(是操作系统调度执行的基本单位)可以存在于一个进程中,共同使用同一份系统资源.
只有在一个进程启动,创建第一个线程的时候,才需要花成本申请系统资源,后续程序想要并发完成多个任务时,只需要添加线程,就不需要再创建进程了.
总结:
- 进程包含线程
- 进程互相之间有独立的内存空间和文件描述符表. 同一个进程的多个线程之间,共享同一份地址空间和文件描述符表.
- 进程是操作系统资源分配的基本单位,线程是操作系统调度执行的基本单位
- 进程之间不会互相影响.一个进程崩溃了,其他进程不会.但是一个线程崩溃整个进程都会崩溃.