通过下面这张图你就能看清楚了,进程、线程和携程的关系 

 进程:

多个进程是可以运行在多个CPU当中的,比如你的电脑是4核,可以同时并行运行四个进程,这是真正物理上的并行运行。

线程:

每个进程又可以有多个线程,线程是轮询执行的,因为轮询的速度很快,所以可以看成是并行。

微线程:

携程是微线程,一个线程可以分为多个携程,同样也是轮询执行,这样的好处是减少CPU的资源消耗,一些比较多而且小的事件可以用携程去处理,减少资源的开销。

协程原理
生成器器
def fun1():print(100)print(200)yield # 暂停代码 保存断点状态print(100)print(100)yieldeventletprint(100)print(100)def fun2():print(100)print(200)yieldprint(100)print(100)yieldprint(100)print(100)gen_obj1 = fun1() # 创建了生成器器对象
gen_obj2 = fun2()
next(gen_obj1)
next(gen_obj2)
next(gen_obj1)
next(gen_obj2)

  

通常采用协程库(扩展库)来完成协程开发
协程库能够自动帮助完成协程的执行切换

eventlet

from multiprocessing import Process
p = Processs()
p.start()
from threading import Thread
t = Thread()
t.start()
from eventlet import Eventlet
e1 = Eventlet()

  e1.start()
  e2 = Eventlet()
  e2.start()

  

协程运行socketio服务器器的⽅方式

pip install eventlet

  

import eventlet
eventlet.monkey_patch()
import socketio
import eventlet.wsgi
# Server对象理理解为Flask⾥里里⾯面的应⽤用对象就可以
# sio对象是⽤用来管理理socketio即时通讯业务的
sio = socketio.Server(async_mode='eventlet') #
指明在evenlet模式下
app = socketio.Middleware(sio)
eventlet.wsgi.server(eventlet.listen(('',
8000)), app)

  

转载于:https://www.cnblogs.com/LiuXinyu12378/p/11348731.html

进程、线程和携程的通俗解释【刘新宇Python】相关推荐

  1. python多线程调用携程,进程、线程和携程的通俗解释【刘新宇Python】

    通过下面这张图你就能看清楚了,进程.线程和携程的关系 多个进程是可以运行在多个CPU当中的,比如你的电脑是4核,可以同时并行运行四个进程,这是真正物理上的并行运行. 每个进程又可以有多个线程,线程是轮 ...

  2. python的进程线程和协程_python成长之路 :线程、进程和协程

    python线程 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分 ...

  3. 进程,线程和协程 并行与并发

    一.进程 进程的出现是为了更好的利用CPU资源使到并发成为可能. 假设有两个任务A和B,当A遇到IO操作,CPU默默的等待任务A读取完操作再去执行任务B,这样无疑是对CPU资源的极大的浪费.聪明的老大 ...

  4. Day8—进程,线程,协程

    本节内容: 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join.Daeman 线程锁之Lock\Rlock\信号量 Event事件 queue队列 生产者消费 ...

  5. python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化

    转自:http://www.jackyshen.com/2015/05/21/async-operations-in-form-of-sync-programming-with-python-yiel ...

  6. python 携程_请教两个关于使用 python 爬去哪儿,携程等机票网站的问题

    初学 python . 近期公司由于业务原因,需要想办法获取到携程与去哪儿的机票信息. 于是我尝试用 python+urllib 对这两个网站上的信息进行抓取. 去哪儿的爬虫代码如下:(初学 pyth ...

  7. php直出,Swoole2.0原生协程高性能开发实践--朱新宇@PHPCON2017

    1.Swoole2.0原生协程高性能开发实践 alvinzhu(朱新宇) 2.关于我 • 2015年 毕业于上海交通大学 • 2015年 进入腾讯即通综合部 • 企业QQ • 营销QQ • QQ看点 ...

  8. 携程python_Python 携程

    一.协程 1.又称微线程,纤程.英文名Coroutine.一句话说明什么是协程:协程是一种用户态的轻量级线程(相当于操作系统不知道它的存在,是用户控制的). 2.协程拥有自己的寄存器上下文和栈(代码的 ...

  9. 进程、线程、协程和管程的区别

    大家都知道,计算机是为了模拟现实世界,其中计算机领域最伟大的发明之一就是操作系统.操作系统对于计算机来说是其核心的存在,可以说操作系统的地位就像计算机的灵魂一样.操作系统的诞生是为了运行用户程序,事实 ...

最新文章

  1. VoxelNet阅读笔记
  2. debug assertion failed!报错
  3. Error:org.gradle.api.internal.changedetection.state.FileCollectionSnapshotImpl cannot be cast to org
  4. 你真的懂TensorFlow吗?Tensor是神马?为什么还会Flow?
  5. 并行编程2——多核体系架构
  6. vs2017 js cordova + dotnet core 开发app
  7. exchange 2010 无人值守安装
  8. 【百度地图API】圣诞节里不会迷路的麋鹿——驾车导航
  9. Hi3519v101调试 RTC功能
  10. 2022 01 27 dnf 起号 搬砖 脚本源码开源 by ~戴眼镜的猫
  11. 老路MBA商学课|第002课:比较优势|我做的比你好,就应该我做吗?
  12. JavaScript防流量劫持-前端安全
  13. numpy数组切片操作之[:,2]、[-1:,0:2]、[1:,-1:]等都是啥?
  14. oracle 11g不能启动,[求助]oracle 11g无法启动
  15. 论文笔记:EPNet: Enhancing Point Features with Image Semantics for 3D Object Detection
  16. 汽车云智能采集服务 八爪鱼采集器在汽车行业网站的应用
  17. 微信屏蔽网址解决办法,如何实现被微信屏蔽的网址在微信内正常访问
  18. 爵士之夜(Jazz Night)
  19. 51虚拟安卓系统v1.1.0.6-安卓端的虚拟机(支持root,xposed框架)
  20. 量化投资发展史上的那些“决定性瞬间”

热门文章

  1. Java 项目还需要 joda 吗
  2. 回顾HTML5省技能大赛(html5交互融媒体内容设计与制作)
  3. d3007(d3007经过站点和时间)
  4. 【Git-7】阿里云Git仓库
  5. 针对美国国家安全局“酸狐狸”漏洞攻击武器平台的分析与应对方案建议
  6. python2.7中文编码_python2.7
  7. 微信小程序搜索框组件之SearchBar
  8. 基于Rsoft的三芯光子晶体光纤数值仿真
  9. 微信小游戏一笔画通关代码---------深度优先图搜问题
  10. ElasticSearch7.X和ElasticSearch8.X学习记录