tornado 源码之 coroutine 分析

2019-01-16
阅读 8 分钟
2.7k
tornado 源码之 coroutine 分析 tornado 的协程原理分析 版本:4.3.0 为支持异步,tornado 实现了一个协程库。 tornado 实现的协程框架有下面几个特点: 支持 python 2.7,没有使用 yield from特性,纯粹使用 yield 实现 使用抛出异常的方式从协程返回值 采用 Future 类代理协程(保存协程的执行结果,当携程执行结束时...

SocketServer 源码分析

2018-12-21
阅读 16 分钟
2.6k
SocketServer.py Creating network servers. contents SocketServer.py contents file head BaseServer BaseServer.serve_forever BaseServer.shutdown BaseServer.handle_request BaseServer._handle_request_noblock BaseServer Overridden functions TCPServer UDPServer ForkingMixIn ThreadingMixIn BaseRequestHan...

tornado 源码之 iostream.py

2018-12-21
阅读 18 分钟
2.9k
iostream.py A utility class to write to and read from a non-blocking socket. IOStream 对 socket 进行包装,采用注册回调方式实现非阻塞。 通过接口注册各个事件回调 _read_callback _write_callback _close_callback _connect_callback ioloop 中 socket 事件发生后,调用 IOStream._handle_events 方法,对事件进...

python decorators

2018-11-29
阅读 4 分钟
1.4k
python decorators 装饰器基础 Decorator 本质 @ 本质是语法糖- Syntactic Sugar使用@decorator 来修饰某个函数 func 时: {代码...} 其解释器会解释成: {代码...} 注意这条语句会被执行 多重装饰器 {代码...} 相当于: {代码...} 带参数装饰器 {代码...} 相当于: {代码...} 使用 *args、**kwargs 给被装饰函数传递参...

python setup.py 浅析

2018-11-16
阅读 10 分钟
10.2k
对于所有 packages 列表里提到的纯 Python 模块做处理 需要在 setup 脚本里有一个包名到目录的映射。 默认对于 setup 脚本所在目录下同名的目录即视为包所在目录。 当你在 setup 脚本中写入 packages = ['foo'] 时, setup 脚本的同级目录下可以找到 foo/__init__.py。如果没有找到对应文件,disutils 不会直接报错,而...

python 多线程编程

2018-11-15
阅读 3 分钟
2.6k
python 多线程编程 使用回调方式 {代码...} 把线程放入一个类 {代码...} 注意使用变量 self._running 退出线程的方式 使用继承方式 from threading import Thread class CountdownThread(Thread): {代码...} c = CountdownThread(5)c.start() 使用 Queue 进行线程间通信 {代码...} setDaemon 设置为 True, run 函数中不...

thread local in python

2018-11-15
阅读 3 分钟
2.1k
thread local in python 参考 Thread Locals in Python: Mostly easy 线程局部变量 {代码...} {代码...} 各线程独享自己的变量,但是使用全局变量 mydata 主线程也有自己的线程局部变量 {代码...} {代码...} 线程 w1,w2 没有 x 属性,子线程与主线程拥有各自的变量 继承 threading.local {代码...} {代码...} 应用实例 b...