首页   注册   登录
 coroutine 最近的时间轴更新

coroutine

V2EX 第 194024 号会员,加入于 2016-09-29 13:59:46 +08:00
coroutine 最近回复了
95 天前
回复了 aoscici2000 创建的主题 Tornado Tornado 的异步 怎么写的
你如果确实有同步的库需要在异步环境执行,可以参考 https://stackoverflow.com/questions/22190403/how-could-i-use-requests-in-asyncio
100 天前
回复了 aoscici2000 创建的主题 Tornado Tornado 的异步 怎么写的
asyncio.sleep 不是 async.sleep,打错
100 天前
回复了 aoscici2000 创建的主题 Tornado Tornado 的异步 怎么写的
你应该先学习一下
1. 事件驱动、IO 多路复用 的知识(CSAPP 和 UNP 里有讲)。
比如先学习一下 select/poll 系统调用,OSX 下的 kqueue, 或者 Linux 下的 epoll(epoll_create, epoll_ctl, epoll_wait)的系统调用知识。
2. Python 本身的 yield, 和 send 分别实现了函数运行时的挂起和唤醒,丢到双端队列里,配合事件驱动每次去取。

然后再回头来看 asyncio 里是如何使用事件驱动的。比如你提到的 async.sleep. 实际就是下一次 epoll timeout 时的返回。

---

Tornado 早期自己利用 epoll 写了事件驱动的源码, 前期也有替换 asyncio 的事件循环的代码: http://www.tornadoweb.org/en/stable/asyncio.html 后来的版本,**似乎**和 asyncio 做了兼容。

另外,从写代码的角度,你可以把直接使用 async await 语法, 而不使用装饰器: http://www.tornadoweb.org/en/stable/guide/coroutines.html#native-vs-decorated-coroutines

另外,《 Python Cookbook 》里也有使用事件驱动来实现同时 handle 多个请求的例子,都可以参考着学习一下。
@scriptB0y 闭包 在 Fluent Python 里是有讲的。
《 Fluent Python 》 一生推
148 天前
回复了 lihongjie0209 创建的主题 Python [转]知乎社区核心业务 Golang 化实践
@lihongjie0209 你一个用 Java 的,专门开了一篇帖子让 Python 和 Golang 的撕 x。 可以的,老哥。
148 天前
回复了 lihongjie0209 创建的主题 Python [转]知乎社区核心业务 Golang 化实践
@lihongjie0209 所以您有,用 golang 和 aiohttp(loop 使用 uvloop)分别写一个 查询一条 MongoDB 的数据 的 server,做一下性能测试么。
您可以参阅 Python Cookbook Chapter 8: 8.7: Calling a Method on a Parent Class 这一小节。
super 的调用顺序实际上,与最终该类的 MRO 的顺序有关。你可以从 D.__mro__ 打印出类 D 的类继承顺序。
比如您给出的两个例子,的 MRO 分别为
(__main__.D, __main__.B, __main__.C, __main__.A, object);
(__main__.D, __main__.C, __main__.B, __main__.A, object)
如何生成 MRO 顺序,就是 cookbook 里提到的 https://en.wikipedia.org/wiki/C3_linearization 了。
对于, “为什么没有经过 A,输出 init A... ” 你可以参考 Python Cookbook,第 8 章关于 super 的描述。 类 B 里 show 的 super,实际上调用的是类 C 的 show。 而类 C 的 super 已经被你注释掉了。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2393 人在线   最高记录 5043   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 10ms · UTC 14:40 · PVG 22:40 · LAX 07:40 · JFK 10:40
♥ Do have faith in what you're doing.
沪ICP备16043287号-1