目录
1. Reactor(反应堆)模式
在学习Twisted框架之前,先来了解一下反应堆模式。异步编程模型之所以能监视所有的任务的完成和阻塞情况,是因为通过循环用非阻塞模式执行完了所有的任务。例如,对于使用Socket访问多个服务器的任务。如果使用同步编程模型,会一个任务一个任务地顺序执行,而使用异步编程模型,执行的所有Socket方法都处于非阻塞的(使用setblocking(0)设置),也就是说,使用异步编程模型需要在循环中执行所有的非阻塞Socket任务,并利用select模块中的select方法监视所有的Socket是否有数据需要接收。
这种利用循环体来等待事件发生,然后处理发生的事件的模型被设计成了一个模式: Reactor(反应堆)模式。Twisted就是使用了Reactor模式的异步网络框架。Reactor模式图形化表示如图1所示: