Twisted 入门
- 在多线程程序中,对于停止某个线程启动另外一个线程,其决定权并不在程序员手里而在操作系统那里。
- 在异步模型中,一个任务要想运行必须显式放弃当前运行的任务的控制权。
- Twisted的reactor只有通过调用reactor.run()才启动。
- reactor循环是在其开始的线程中运行,也就是运行在主线程中。
- 一旦启动,reactor就会在程序的控制下(或者具体在一个启动它的线程的控制下)一直运行下去。
- 并不需要显式的创建reactor,只需要引入就OK了。
- 在Twisted中,reactor是Singleton模式,即在一个程序中只能有一个reactor,并且只要你引入它就相应地创建一个。
- 若使用其它的reactor,需要在引入twisted.internet.reactor前安装它。
- reactor并不会因为回调函数中出现失败(虽然它会报告异常)而停止运行。
- 在每个通过Twisted搭建起来的程序中心处,不管你这个程序有多少层,总会有一个reactor循环在不停止地驱动程序的运行。