tornado中使用同步io的问题
来源:5-2 tornado中为什么不能写同步的方法

今日长剑在握
2019-02-06
课程5-2用案例演示了在tornado中使用同步io造成阻塞。
那么当业务中有耗时的操作呢,比如某个操作耗时20分钟,这个时候如何解决阻塞的问题?
我看 tornado 中提供了coronutine 装饰器和 run on executor ,那我使用 run on execute 来解决耗时的操作是合理的吗?我应该设定多少个线程合适么?如果用进程来替代线程,效果是不是一样的?
写回答
1回答
-
run on executor可以解决这个问题, tornado底层使用的是asyncio,asyncio启动的时候会启动一个主线程用于做事件循环,同时会维护一个线程池就是为了解决这种问题,run on execute就是将耗时的任务交给线程池去运行,所以你不用自己去维护线程池了
00
相似问题