1.twisted 的reactor,相当于epool\select,即多路服用。

reactor是单线程监听和执行回调函数的,所以回调函数要避免阻塞。
2.Deferred 可使得函数调用序列化。入下图所示,

右侧为功能函数,左侧为异常处理函数。功能函数返回的值会传入下一曾的功能函数。
异常函数如果能正常返回,返回值传入下一曾的功能函数,如果抛出异常,则异常传入下层的异常处理函数。当功能函数抛出异常时,会将异常包装成
同一层的两个函数同时进出链表,不管是功能函数还是异常函数,有一个执行了,
同一层的两个函数都出链表。如果链表为空,则抛出AllReadyCalledEror

reactor是单线程监听和执行回调函数的,所以回调函数要避免阻塞。
2.Deferred 可使得函数调用序列化。入下图所示,

右侧为功能函数,左侧为异常处理函数。功能函数返回的值会传入下一曾的功能函数。
异常函数如果能正常返回,返回值传入下一曾的功能函数,如果抛出异常,则异常传入下层的异常处理函数。当功能函数抛出异常时,会将异常包装成
erro,并作为参数传入下一曾的异常处理函数,再往下传递。
绿线表示成功调用,红线表示有异常抛出
同一层的两个函数同时进出链表,不管是功能函数还是异常函数,有一个执行了,
同一层的两个函数都出链表。如果链表为空,则抛出AllReadyCalledEror