项目准备1——多线程和多进程的区别及应用场景

区别

多进程的优点:

  • 编程调试相对容易:不需要考虑锁和同步资源
  • 可靠性好:拥有独立的地址空间,进程之间相互隔离
  • 适合于多核、多机分布式:如果一台机器不够,扩展到多台机器比较简单
  • 多进程适用于CPU密集型。
  • 缺点:资源占用多,切换代价大

多线程的优点:

  • CPU,内存占用少
  • 创建销毁代价小,切换速度快
  • 多线程适用于I/O密集型,经常会由于I/O阻塞导致频繁的线程切换。同时也适合于单机多核场景。
  • 缺点:一个线程挂掉将导致整个进程挂掉

应用场景

1. 多进程应用场景

  • nginx主流的工作模式是多进程模式(也支持多线程模式)
  • 守护进程配合worker进程,例如apached,httpd等等以d结尾的进程
  • Chrome浏览器也是多进程(网页之间不会影响)
  • redis也可以归类到“单线程多进程”模型(平时工作进程是单线程,涉及到耗时操作如持久化或者aof重写时会用到多进程)

2. 多线程应用场景

  • 普通的Web服务器,因为连接需要频繁的创建和销毁
  • 提供非均质服务,事件响应有优先级
  • 单任务并行计算,像图形处理,算法处理

参考链接:

1. https://blog.csdn.net/N1314N/article/details/93652814

2. https://blog.csdn.net/weixin_39731083/article/details/82015830

3. https://blog.csdn.net/RUN32875094/article/details/79515384

原文地址:https://www.cnblogs.com/lfri/p/12846568.html