tornado中使用同步io的问题

来源:5-2 tornado中为什么不能写同步的方法

今日长剑在握

2019-02-06

课程5-2用案例演示了在tornado中使用同步io造成阻塞。
那么当业务中有耗时的操作呢,比如某个操作耗时20分钟,这个时候如何解决阻塞的问题?

我看 tornado 中提供了coronutine 装饰器和 run on executor ,那我使用 run on execute 来解决耗时的操作是合理的吗?我应该设定多少个线程合适么?如果用进程来替代线程,效果是不是一样的?

写回答

1回答

bobby

2019-02-10

run on executor可以解决这个问题, tornado底层使用的是asyncio,asyncio启动的时候会启动一个主线程用于做事件循环,同时会维护一个线程池就是为了解决这种问题,run on execute就是将耗时的任务交给线程池去运行,所以你不用自己去维护线程池了

0
0

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程