从同步代码调用Python3.4.3异步基础设施的异步函数

aioawait的Python项目详细描述


这个包在上面实现了两个原语(awaitspawn) python 3的异步基础设施。这两个函数允许我们调用 同步代码中的异步函数。

安装

pip3 install aioawait

示例

fromasyncio.tasksimportcoroutine,sleep,asyncfromaioawaitimportawait,spawn@coroutinedefmonitor(name,size,total):whileTrue:print('\ttotal',name,total)yield fromsleep(1)@coroutinedefcounter(name,size,total):"""sums into total all numbers from 0 to size"""m=async(monitor(name,size,total))# monitor could be called using spawn. eg:# m = spawn(monitor(name, size, total))forninrange(size):total[0]+=nifn%5==0:print('sleeping',name,n)yield fromsleep(2)else:print('counting',name,n)yield# stops monitorm.cancel()returnname,'done',n,totalclassCounter:"""note that this class has no asynchronous code"""def__init__(self):self.cb=spawn(counter('b',40,[0]))@propertydefcounter_a(self):returnawait(counter('a',20,[0]))@propertydefcounter_b(self):returnawait(self.cb)if__name__=='__main__':c=Counter()print(c.counter_a)print(c.counter_b)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式