Eventlet
定义
:
eventlet
是一个用来处理和网络相关的
python
网络库,而且可以通过
协程来实现并发,在
eventlet
里,把
“
协程
”
叫做
greenthread
。所谓并发,就是开启了多个
greenthread
,并且对这些
greenthread
进行管理,以实现非阻塞式的
I/O
。
Eventlet
特性:
A
、非阻塞
I/O
模型
B
、协程
(Coroutines)
使得开发者可以采用阻塞式的开发风格
,
却能够实现非阻塞
I/O
的效果
C
、隐式事件调度
,
使得可以在
Python
解释器或者应用程序的某一部分去使用
Eventlet
关于协程
,
大致可以理解成允许子程序可以多次暂停和恢复执行
,
是实现多任务的
一种有效手段,
Eventlet
的基础是
greenlet,
这是实现
"
协程
(Coroutine)"
的基础。
协程又被称作
"
微线程
“
,简单点说就是在一个原生线程上通过
"
拷贝
"
和
"
切换
"
堆栈帧数据来实现执行多个工作,看上去和传统的
"
单
CPU,
多线程
(Threading)"
执行方式差不多
Eventlet
的安装:
Windows
下安装
1
、从
>
协程多与线程进行比较
1) 一个线程可以多个协程,一个进程也可以单独拥有多个协程,这样python中则能使用多核CPU。
2) 线程进程都是同步机制,而协程则是异步
3) 协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态
kotlin之协程(一),线程,进程,协程,协程可以替换线程吗
kotlin之协程(二),Kotlin协程是什么、挂起是什么、挂起的非阻塞式
kotlin之协程(三),开始创建协程,launch,withContext
kotlin之协程(四),协程的核心关键字suspend
kotlin之协程(五),launch 函数以及协程的取消与超时
kotlin之协程(七),协程中relay、yield 区别
launch 函数定义:
async 函数定义:
从源码可以看出launch 和 async的唯一区别在于async的返回值
async 返回的是 Deferred 类型,Deferred 继承自 Job 接口,Job有的它都有,增加了一个方法 await ,这个方法接收的是 async 闭包中返回的值,async 的特点是不会阻塞当前线程,但会阻塞所在协程,也就是挂起
runBlocking 启动的协程任务会阻断当前线程,直到该协程执行结束。当协程执行结束之后,页面才会被显示出来。
runBlocking 通常适用于单元测试的场景,而业务开发中不会用到这个函数
算。
双线圈一般是指在同一时间内,两个子程序同时进行的情况。两个子程序是同时运行的,则可以称之为双线圈。
两个子程序运行的时间可能在时间轴上发生重叠,但并不是同时运行的,例如使用协程或异步编程时,也可能会同时调用多个子程序,但并不是同步执行的。
以上就是关于eventlet 在win7 上怎么安装全部的内容,包括:eventlet 在win7 上怎么安装、协程与线程的区别、协程和线程区别是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)