多线程和多进程的区别
- 一个线程从属于一个进程;一个进程可以包含多个线程。
- 一个线程挂掉,对应的进程挂掉,多线程也挂掉;一个进程挂掉,不影响其它进程,多进程稳定。
- 进程系统开销显著大于线程开销;线程需要的系统资源更少。
- 多进程在执行时拥有各自独立的内存单元;多线程共享进程的内存,例如.text,.data,.bss和扩展段,但每个线程拥有自己的栈段和寄存器段。
- 多进程切换需要刷新TLB并获取新的地址空间,然后切换硬件上下文和内核栈;多线程切换只需要切换硬件上下文和内核栈。
- 通信方式不同。
- 多进程适用于多核,多机分布;多线程适用于多核。