进程VS线程
多进程和多线程是实现多任务最常用的两种方式.实现多任务,通常会设计Master-Worker模式,Master负责分配任务,worker负责执行任务.
多任务环境下,就是一个Master,多个Worker.
如果用多进程实现Master-Worker,那主线程就是Master,其他线程就是Worker.
如果用多线程实现Master-Worker,那主线程是Master,其他线程就是Worker.
- 多进程的优势:稳定性高,一个子进程崩溃了,也不会影响其他进程.(主进程崩溃了,其他进程也就挂掉了,由于主进程主要负责分配任务,所以崩溃的几率很低).
- 多进程的缺点:创建进程的代价大,在Windows下创建进程开销巨大.操作系统同时运行的进程数也是有限的,如果有上千个进程在运行,操作系统调度都有问题.
- 多线程的优势就是比多进程快一点,这个一点可以忽略不计.
- 最大的缺点就是,一旦一个线程挂掉了,可能会导致其他线程的崩溃.因为所有线程共享进程的内存.
在Windows系统下多线程的效率要比多进程要高.