进程 vs. 线程

多进程模式最大的优点就是稳定性高,因为一个子进程崩溃了,不会影响主进程和其他子进程。(当然主进程挂了所有进程就全挂了,但是Master进程只负责分配任务,挂掉的概率低)著名的Apache最早就是采用多进程模式。
多进程模式的缺点是创建进程的代价大,在Unix/Linux系统下,用fork调用还行,在Windows下创建进程开销巨大。另外,操作系统能同时运行的进程数也是有限的,在内存和CPU的限制下,如果有几千个进程同时运行,操作系统连调度都会成问题。
多线程模式通常比多进程快一点,但是也快不到哪去,而且,多线程模式致命的缺点就是任何一个线程挂掉都可能直接造成整个进程崩溃,因为所有线程共享进程的内存。在Windows上,如果一个线程执行的代码出了问题,你经常可以看到这样的提示:“该程序执行了非法操作,即将关闭”,其实往往是某个线程出了问题,但是操作系统会强制结束整个进程。

线程切换
多任务一旦多到一个限度,就会消耗掉系统所有的资源,结果效率急剧下降,所有任务都做不好。

计算密集型 vs. IO密集型
是否采用多任务的第二个考虑是任务的类型。我们可以把任务分为计算密集型和IO密集型。

异步IO
考虑到CPU和IO之间巨大的速度差异,一个任务在执行的过程中大部分时间都在等待IO操作,单进程单线程模型会导致别的任务无法并行执行,因此,我们才需要多进程模型或者多线程模型来支持多任务并发执行。 参考:廖雪峰的官方网站,python教程

python笔记06_进程vs线程相关推荐

  1. 怎么更进一步学python_【百尺竿头,更进一步学Python】Python进阶课程——进程,线程和协程的区别...

    本文带来各类奇怪的IT百科知识. [百尺竿头,更进一步学Python]Python进阶课程--进程:线程和协程的区别 现在多进程多线程已经是老生常谈了:协程也在最近几年流行起来.今天我们本文主要介绍进 ...

  2. Python学习笔记:进程和线程(承)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. Python学习笔记:进程和线程(起)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  4. Python自学笔记之进程和线程

    在使用计算机或者手机的时候可以发现他们都能同时使用多个程序,这里就要涉及到多线程编程,多线程编程能够帮助我们合理的分配并最高效的利用资源. 进程 概念进程(Process)是计算机中的程序关于某数据集 ...

  5. python线程与进程视频教程_[PYTHON系列教程]→进程 vs. 线程

    我们介绍了多进程和多线程,这是实现多任务最常用的两种方式.现在,我们来讨论一下这两种方式的优缺点.首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Work ...

  6. Python中的进程和线程

    一.Python中两种创建进程的方式 1.os.fork只适用于Linux/Mac 2.使用multiprocessing模块可以跨平台实现多进程 使用os.fork(),像Linux平台上那样创建多 ...

  7. python并发编程-进程池线程池-协程-I/O模型-04

    目录 进程池线程池的使用***** 进程池/线程池的创建和提交回调 验证复用池子里的线程或进程 异步回调机制 通过闭包给回调函数添加额外参数(扩展) 协程*** 概念回顾(协程这里再理一下) 如何实现 ...

  8. Python基础:进程、线程、协程(2)

    进程与线程 什么是进程(process)? An executing instance of a program is called a process. Each process provides ...

  9. Python中的进程和线程(20)

    进程和线程 进程 创建多进程 进程和全局变量 传递参数和进程号 进程的状态 进程之间通信 put() get()方法 生产者和消费者 进程子类化 生产者和消费者子类化 进程池 线程 线程子类化 共享全 ...

最新文章

  1. 二维指针删除单向链表
  2. SQL编程where子句与操作符
  3. 推荐一款软件(作业)
  4. WireShark之抓包过滤链接部分
  5. 斯坦福大学CS520知识图谱系列课程学习笔记:第三讲高级的知识图谱是什么样的
  6. 树莓派:文本编辑器与文件
  7. 【转】C#获取当前日期时间(转)
  8. 【华为云技术分享】DAS文件上传组件的进化
  9. 基于DCT系数的实时监控中运动目标检测
  10. SpaceBase – 基于 Sass 的响应式 CSS 框架
  11. jquery插件函数传参错误
  12. android 播放直播流,安卓大部分浏览器播放HLS协议直播流会从头开始
  13. MicroDicom viewer(Dicom格式看图软件)v2.9.2官方版
  14. img标签的alt属性和title属性的区别
  15. Python 测试题(覆盖了大多数的基础知识和进阶)
  16. 大学生WEB前端静态网页——旅游介绍35页 响应式,
  17. ios截屏功能html,滚动截屏APP - iPhone上的长截图工具
  18. SQL Server基础操作(此随笔仅作为本人学习进度记录六 !--程序块和循环)
  19. Java毕设项目会议室预约管理系统(java+VUE+Mybatis+Maven+Mysql)
  20. 微软DNS服务器默认,Microsoft Windows Server DNS 配置打开地址套接字

热门文章

  1. Java中/和/*和/**的区别简述
  2. make: 'pcs.o' is up to date.问题解决
  3. mysql8.0.12怎么配置_MySQL8.0.12安装及配置
  4. java学习过程记录
  5. python爬虫案例-乌托家家具公司数据爬取
  6. IdentityServer4实战 - 谈谈 JWT 的安全策略
  7. Orchard源码分析(5.3):EndRequest事件处理(DefaultOrchardHost.EndRequest方法)
  8. UITextfield键盘相关设置
  9. ASP.NET 4.0 来了
  10. 分布式id-数据库实现