如何在线程池中使用Tornado?

时间:2017-04-30 14:23:19

标签: python threadpool tornado

我来自Java背景,而且非常擅长Python。

我需要编写一个简单的Web服务器来处理多个并发请求。请求处理主要是CPU绑定的,处理单个请求可能需要100 - 1000 ms。服务器将在多核计算机上运行。

我被建议将Tornado与线程池一起使用。你有什么例子吗?

1 个答案:

答案 0 :(得分:2)

如果单个请求的处理主要受CPU限制,则线程池将无济于事。 Python的全局解释器锁(GIL)阻止多个线程在任何一个Python进程中运行Python。相反,每个核心启动一个龙卷风流程。

Follow this example from the Tornado docs

server = HTTPServer(app)
server.bind(8888)
server.start(0)  # Forks multiple sub-processes
IOLoop.current().start()