Executors¶
Executors 控制接收到的消息如何被调度到 Server 进行处理。这种调度可以是同步的或异步的。
同步 Executor 会在 Server 的线程上处理消息。这意味着 Server 一次只能处理一条消息。其他传入的消息不会被处理,直到当前消息处理完成。例如,在 RPCServer 的情况下,一次只会调用一个方法。同步 Executor 保证消息按照接收的顺序完成处理。
异步 Executor 会并发处理接收到的消息。Server 线程不会被消息处理阻塞,可以继续处理传入的消息。没有顺序保证 - 消息处理可能以与接收顺序不同的顺序完成。Executor 可以被配置为限制一次处理的最大消息数量。
可用的 Executors¶
eventlet¶
使用绿色线程池异步执行调用的 Executor。
请参阅:https://docs.pythonlang.cn/dev/library/concurrent.futures.html 和 http://eventlet.net/doc/modules/greenpool.html 以了解其工作原理。
它收集关于执行的提交的统计信息,用于后期分析…
threading¶
使用线程池异步执行调用的 Executor。
它收集关于执行的提交的统计信息,用于后期分析…
请注意,此 Executor 永远不会缩小其线程池,这将导致池最终达到由 max_workers 定义的最大容量。请查看 DynamicThreadPoolExecutor 以获取替代方案。
请参阅:https://docs.pythonlang.cn/dev/library/concurrent.futures.html