对于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。

多线程占相比于多进程占用内存少、CPU利用率高,创建销毁,切换都比较简单,速度很快。多进程相比于多线程共享数据复杂,需要将进程间通信。但是同步简单,多线程因为数据共享简单,导致同步复杂。多进程编程调试都比多线程简单。进程之间互相不影响,一个线程挂掉将导致整个进程挂掉。多进程适合多核,多机分布,多线程适合多核分布。

举个例子,谷歌浏览器是使用多进程来实现的,浏览器中你打开的每个页面,都是一个进程。如果一个页面崩溃了,不会影响其他页面(进程相互独立)。但是谷歌浏览器占用内存相比于其他浏览器多,实际应用中,打开页面太多,占用内存较大。其他浏览器采用多线程来实现,每个页面就是一个线程,所以一个页面崩溃,会导致整个浏览器崩溃。比如我的web服务器,我就采用多线程来与数据库连接,来一个连接建立一个线程,断了就销毁线程,要是用进程,创建和销毁的代价是很难承受的。还有大量计算,当然就是要耗费很多CPU,切换频繁了,这种情况下线程是最合适的。

多线程、多进程的区别及适用场景相关推荐

  1. SparkMapReduce的区别、多线程多进程的区别

    Spark&MapReduce的区别.多线程&多进程的区别 1.spark与hadoop区别: 2.Spark多线程运行, MR多进程运行 3.MR存在的问题: 4.线程和进程的区别: ...

  2. python 多进程_说说Python多线程与多进程的区别?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  3. Python多进程(process)和多线程(thread)的区别

    目录 一.线程与进程 1.基本概念 2.区别 二.多进程与多线程 1.多进程 (1)Python的多进程编程与multiprocess模块 (2)利用multiprocess模块的Pool类创建多进程 ...

  4. 什么是进程,什么是线程,多线程与多进程的区别?

    什么是进程,什么是线程,以及什么实际场景使用他们? 进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.简言之运行的程序就 ...

  5. python:一文搞懂多线程,多进程,异步协程的使用场景

    本文将使用场景化为案例,将单线程,多线程,多进程,异步协程的速度进行对比 对比速度时,   >表示 速度快于  >>表示速度远快于  =表示速度差不多 >>>> ...

  6. 【Python】单线程异步多线程多进程实例

    上一篇文章主要介绍了多任务场景下单线程异步.多线程.多进程如何选择,链接:多任务场景下单线程异步多线程多进程 这里主要通过三个实例去验证一下简单的多任务场景下,三种方式的耗时情况,假设有10个互不关联 ...

  7. java 常用集合list与Set、Map区别及适用场景总结

    转载请备注出自于:http://blog.csdn.net/qq_22118507/article/details/51576319   list与Set.Map区别及适用场景 1.List,Set都 ...

  8. linux 进程间界面嵌套,WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口)...

    WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验.如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程.然而,就不能让 ...

  9. Python多线程多进程、异步、异常处理等高级用法

    文章目录 前言 多线程多进程 多线程 多进程 协程 总结 异步 基本概念 异步编程 asyncio aiohttp 异常 常见异常 异常处理 自定义异常 lambda表达式 lambda表达式用法 高 ...

最新文章

  1. 欧阳自远:有个性的嫦娥12345,如何不重复美国探月路?
  2. linux里打包和压缩文件,linux ---打包和压缩文件
  3. OpenCV非真实感渲染的实例(附完整代码)
  4. WLAN高密无线网络部署的信道问题
  5. 在线编写php文件,php单文件版在线代码编辑器_php实例
  6. BZOJ2819 Nim(DFS序)
  7. 面试问题大全(不断添加中)
  8. c++禁止进程被结束_第四章 进程管理
  9. linux - ab测试工具
  10. C#异步加载数据:BackgroundWorker的使用
  11. 竖版1:2500万标准中国地图
  12. 【系统之家抢先发布】2011年10月最新GhostXP_SP3 PCOS技术快速装机版v6.5
  13. 查看/设置windows密钥
  14. 微信分享朋友圈功能开发流程详解
  15. LiveData 机制详解
  16. MySQL高可用架构MHA
  17. rhel6 中安装使用finger命令
  18. 赵小楼《天道》《遥远的救世主》深度解析(65)实事求是的辩证思维(应试教育学不到的思维)
  19. 漂亮的梦幻图,可用来做背景图(60张左右)
  20. 计算机知识方面的类目标识,专利文献种类标识代码标准

热门文章

  1. 数说IN语|《数据安全法(草案)》公布,数据安全保护乘风破浪正当时
  2. JAF(JavaBeans Activation Framework)
  3. java 8安装教程
  4. Spring基础配置篇(一)
  5. 文本编辑工具-typora
  6. 谷歌页面排名算法 - 未完
  7. 人脸识别再曝安全漏洞,15分钟解锁19款安卓手机,只需打印机、A4纸和眼镜框即可...
  8. 数字人民币与智能合约
  9. Python -- 把python文件打包成windows系统的exe文件
  10. windows——网络负载平衡(NLB)