将Twisted中的异步改为同步了:
#! /usr/bin/env python
# -*- coding: UTF-8 -*-
# File: readcall.py
# Date: 2009-06-16
# Author: gashero
"""
测试Greenlet与Twisted合用,实现异步改同步调用
"""
import os
import sys
import greenlet
from twisted.internet import reactor,protocol
from twisted.protocols import basic
from twisted.python import log
def wait_host():
return
class RCProtocol(basic.LineReceiver):
def connectionMade(self):
print 'connection made'
self.grrc=greenlet.greenlet(self.read_chunk)
self.grrc.switch() #切换到处理函数read_chunk()
print 'switched to grrc'
return
def connectionLost(self,reason):
print 'connection lost'
return
def _dataReceived(self,data):
return
def lineReceived(self,line):
print 'line Received'
self.grrc.switch(line)
return
def read_chunk(self):
while True:
#死循环中处理每次读取数据成功
print 'in read_chunk()'
g_self=greenlet.getcurrent()
chunk=g_self.parent.switch() #切换到主循环的greenlet,等被切换回来时就返回了传递的数据了
if 'quit' in chunk.lower():
self.transport.write('HTTP/1.1 200 OK\r\nContent-Length:10\r\n\r\nHelloWorld')
self.transport.loseConnection()
break
return
class RCFactory(protocol.ServerFactory):
protocol=RCProtocol
def main():
log.startLogging(sys.stdout)
reactor.listenTCP(8090,RCFactory())
reactor.run()
return
if __name__=='__main__':
main()
相关推荐
先安装greenlet,再装gevent,详细
Greenlet一个能把异步操作挪到独立线程的js库
generator实现的协程在yield value时只能将value返回给调用者(caller)。 而在greenlet中,target.switch(value)可以切换到指定的协程(target), 然后yield value。greenlet用switch来表示协程的切换,从一个协程...
python3.8版本的greenlet wheel文件,pip安装某个库失败的时候,如果提示greenlet安装失败,可以用这个wheel文件安装
greenlet-0.4.15-cp35-cp35m-win32
格林莱特 将异步函数移到其自己的线程中。 简化的单功能版本,提供。 这个名字的选择,但是。 Greenlet支持IE10 +,因为它使用 。 为了使用 ,必须使用诸如类的库对Web Workers进行。安装及使用npm i -S greenlet ...
资源来自pypi官网。 资源全名:greenlet-0.4.3.win-amd64-py2.7.exe
资源来自pypi官网。 资源全名:greenlet-0.4.0-py2.7-win-amd64.egg
greenlet-1.1.1-cp310-cp310-win_amd64
greenlet-1.1.1-cp37-cp37m-win_amd64
python库,解压后可用。 资源全名:greenlet-0.4.12-cp27-cp27m-manylinux1_x86_64.whl
资源来自pypi官网。 资源全名:greenlet-0.4.13-cp34-cp34m-manylinux1_x86_64.whl
greenlet-0.4.17-cp36-cp36m-win32
greenlet-1.1.1-cp38-cp38-win32
使用packstack安装redhat openstack10,报错:Error appeared during Puppet run: x.x.x.x_controller.pp ,经检查日志,原因是python-greenlet包未安装,且版本需要大于.0.3.1 安装此包,就ok啦。
资源来自pypi官网。 资源全名:greenlet-0.4.12-cp27-cp27m-manylinux1_x86_64.whl
资源分类:Python库 所属语言:Python 资源全名:greenlet-0.4.11.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
greenlet-0.4.15-cp35-cp35m-win_amd64
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:greenlet-0.3.1.win32-py2.6.exe 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059