我来自Java背景,而且非常擅长Python。
我需要编写一个简单的Web服务器来处理多个并发请求。请求处理主要是CPU绑定的,处理单个请求可能需要100 - 1000 ms。服务器将在多核计算机上运行。
我被建议将Tornado
与线程池一起使用。你有什么例子吗?
答案 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()