进程和线程:
为什么会引入线程?
对于一些需要频繁的创建和销毁进程的情况,由于创建和销毁进程,本身就是一个比较低效的操作(1.创建PCB,2.分配系统资源(尤其时内存资源),3.把PCB加入到内核的双向链表中)为了提高这个场景下的效率,就引入了“线程”——也称为“轻量级进程”。
进程和线程的区别:
1.进程是包含线程的,线程是在进程内部的。
2.每个进程有独立的虚拟地址空间,也有自己独立的文件描述符表,同一个进程的多个线程之间,则共用这一份虚拟地址空间和文件描述符表。
3.进程是操作系统中资源分配的基本单位,线程是操作系统中,调度执行的基本单位。
4.多个进程同时执行的时候,如果一个进程挂了,一般不会影响到别的进程;同一个进程内的多个线程之间,如果一个线程挂了,很可能把整个进程带走,其他同进程中的线程也就没了。