Greenlets互相通信之Event
1.为什么引入Event;
2.Event是什么;
3.编程实例。
为什么引入Event
1.windows中有Events,作为线程间同步的方法;
2.Gevent中则是Greenlet间“同步”的一种方法;
3.获得某个时机;
4.比如学校,下课铃响了,大家可以放学回家了;
5.如果纯手工,如何实现?
代码实例:
# -*- coding: utf-8 -*-
import gevent
from gevent.event import Event, AsyncResult
evt = AsyncResult()
def setter():
print ' 好好听课 '
gevent.sleep( 5 ) //持续时间为5
print ' 好的 ,下课 '
global evt
evt.set( ' hello world ' )
def waiter() : //等待下课
print ' 听课 '
global evt, is_ok
data = evt.get()
print data
print ' 哈哈 , 终于下课了 '
def main() :
gevent.joinall( [
gevent.spawn( setter )
, gevent.spawn( waiter )
, gevent.spawn( waiter)
] )
if __name__ == ' __main__ ' :
main()
Event & AsyncEvent
1.均实现通知;
2.但AsyncEvent可以带数据。
相关推荐
这是使用Gevent Greenlets实现的FreeSWITCH事件套接字协议。 它已经在生产中,每天处理数百个电话。 全面的Python3支持! 入站套接字模式 >> > import greenswitch >> > fs = greenswitch . InboundESL ( host = '...
greenlet-chatserver-example 创建简单的聊天服务器以了解 Python 中的 greenlets安装pip install -r requirements.txt ##使用发送消息: telnet localhost 8080Trying 127.0.0.1...Connected to localhost.Escape ...
guv = greenlets + libuv 文档: 来源: 关键词: guv, greenlet, gevent, eventlet 关于 guv 是Python >= 3.2 和 pypy3的快速网络库和 WSGI 服务器(如 gevent/eventlet) 事件循环后端是 ,旨在与接口完全...
兼容性Mantrid 旨在与 Python 2.6 或 2.7 一起使用,并且需要支持 greenlets 的 Python 实现(因此无论是 CPython 还是 PyPy 1.7 及更高版本)。快速开始安装 Mantrid: $ sudo python setup.py install使用默认设置...
Greenlets是用于进程内并发编程的轻量协程。 “ greenlet”软件包是的衍生产品, 是CPython的一种版本,它支持称为“ tasklets”的微线程。 Tasklet伪并行运行(通常在单个或几个OS级线程中运行),并与“通道”上的...
pytb 用于检查正在运行的进程的python堆栈的实用程序(仅x64 linux)特征... 如果您还想查看greenlet堆栈跟踪,请使用sudo pytb -g [pid] 这还将向您显示greenlets堆栈跟踪。 注意:为了找到所有绿色对象,pytb查找所有
为了让生活变得更轻松,幸运的人们,我创建了trequests ,一个异步请求适配器,该适配器使用greenlets(通过tornalet)和Tornado中内置的非阻塞HTTP客户端方法来对库进行任何调用(利用Requests )非阻塞。...
淋巴顶 一种用于监视淋巴服务的顶级工具。 安装 ...很快我们将进入pypi!...name endpoint rusage.maxrss greenlets.count rpc ▲ exceptions demo tcp://127.0.0.1:47761 26M 36 297 N/A web tcp://127.0.0.1:47217 28M