基本观点:

1、一个python进程一个GIL(全局锁),每个线程需要获取这个锁才能执行。

2、cpu密集型的程序,使用多进程。

3、IO密集型的程序,多线程可能会比多进程快。

4、多核cpu执行多进程会不会比单进程快?答案是:会(如果进程切换开销足够小)。这个跟操作系统的调度算法有关系。参考:https://superuser.com/questions/257406/can-a-multi-core-processor-run-multiple-processes-at-the-same-time

5、线程之间切换会有很大的开销,因此协程出现了,协程是用户控制调度的轻量级线程,实际多个协程是属于同个线程的,没有切换开销。python的协程可以通过yield、next、send关键字控制,也可以引入第三方库gevent,更加方便。

对于3的观点,假设以下两种情况:

a、单进程多线程:1*100

b、多进程多线程:10*10

都是100个线程,cpu是10核心。对于b,10个进程占用10个核心,每个进程只有10个线程进行切换。对于a,100个线程之间的切换需要大量的开销,总切换开销比b多。

转载于:https://www.cnblogs.com/mixerzhan/p/6806791.html

python进程、线程、协程相关推荐

  1. python进程线程协程区别_Python3多线程与协程

    python中的多线程非常的常用,之前一直糊里糊涂地使用,没有一些系统性的概念,记录一下~ 0x001 多线程的优势:可将长时间占用的程序放到后台 可能会加速程序执行速度 能够实现一些类似同步执行的效 ...

  2. python 进程 线程 协程

    并发与并行:并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔内发生.在单核CPU下的多线程其实都只是并发,不是并行. 进程是系统资源分配的最小单位,进程的出现是为了更好的 ...

  3. python进程线程协程区别_进程和线程、协程的区别

    现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来.python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程.本文主要介绍进程.线程和协程三者之间的区 ...

  4. python进程线程协程区别_Python中 进程 线程 协程

    一.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在 ...

  5. Python之进程+线程+协程(异步、selectors模块、阻塞、非阻塞IO)

    文章目录 一.IO多路复用 二.selectors模块 本篇文字是关于IO多路复用的更深入一步的总结,上一篇 Python之进程+线程+协程(事件驱动模型.IO多路复用.select与epoll)对I ...

  6. linux的进程/线程/协程系列5:协程的发展复兴与实现现状

    协程的发展复兴与实现现状 前言 本篇摘要: 1. 协同制的发展史 1.1 协同工作制的提出 1.2 自顶向下,无需协同 1.3 协同式思想的应用 2. 协程的复兴 2.1 高并发带来的问题 2.2 制 ...

  7. 简要说明__python3中的进程/线程/协程

    多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关 稳定性: 进程 > 线程 > 协程 系统资源占用量:进程 > 线程 > 协程 ...

  8. Linux的进程/线程/协程系列4:进程知识深入总结:上篇

    Linux的进程/线程/协程系列4:进程/线程相关知识总结 前言 本篇摘要: 1. 进程基础知识 1.1 串行/并行与并发 1.2 临界资源与共享资源 1.3 同步/异步与互斥 1.4 进程控制原语 ...

  9. linux的进程/线程/协程系列3:查看linux内核源码——vim+ctags/find+grep

    linux的进程/线程/协程系列3:查看linux内核源码--vim+ctags/find+grep 前言 摘要: 1. 下载linux内核源码 2. 打标签方法:vim+ctags 2.1 安装vi ...

  10. linux的进程/线程/协程系列1:进程到协程的演化

    linux的进程/线程/协程系列1:进程到协程的演化 前言 摘要: 1. 一些历史:批处理时代 2. 现代操作系统启动过程 3. 进程(process)的出现 4. 线程(thread)与线程池 5. ...

最新文章

  1. 「一夜白头」有科学依据了,减压可返黑 | 哥伦比亚大学最新研究
  2. poj3268(最短路)
  3. 如何设计出“有趣”的互联网产品?
  4. 串行并行程序在效率上的简单比较
  5. 【日常小记】linux中强大且常用命令:find、grep
  6. C# 实现酒店房态图
  7. 免費玩雲端運算,Amazon Web Service 雲端運算平台攻略 【1】
  8. vue项目原理分析-2:路由
  9. sql server 监视_使用动态管理对象监视SQL Server –请求
  10. mysql字符串查询_mysql字符串查询常用命令
  11. su室外渲染参数设置_【QA答疑】VRay3.4 for SketchUp2017 渲染参数设置
  12. 黑苹果声卡驱动成功后声音出现卡顿的解决办法
  13. adb 连接某个wifi_使用adb命令连接WiFi进行无线调试
  14. 手机查看企业qq邮件服务器,QQ企业邮箱怎么用?手机QQ邮箱收发邮件的方法
  15. 十月上旬百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)
  16. 记一次笔记本win键失灵 不能用 windows 徽标键失灵
  17. MATLAB之易经卜卦程序+GUI
  18. VNC Timed out waiting for a response from the computer
  19. 高中在线计算机,高中计算机考试试题集-20210414015151.docx-原创力文档
  20. html如何带入背景,html怎么导入背景图

热门文章

  1. Java动态代理之InvocationHandler最简单的入门教程
  2. ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  3. 如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节
  4. x79主板bios设置中文_bios菜单
  5. mysql表定义外键语法_mysql设置外键的语法怎么写?
  6. python 连续比较_For循环比较python中以前的值
  7. python-docx 如何获取当前字号_调整字号保护视力?专家有一个更好的建议
  8. 评分怎么读_英国留学本科中途被退学怎么申请硕士补救
  9. oracle 酒店客户数量,浅谈经济型酒店行业的数据分析(二)
  10. 服务器修改数据库值,服务器上怎么修改数据库内存