【发布时间】:2015-05-20 18:28:29
【问题描述】:
我一直在研究 tornado web 框架,但我仍然没有清楚地理解 ioloop 的功能,尤其是如何在多线程中使用它。 是否可以为多个服务器创建单独的 ioloop 实例??
【问题讨论】:
标签: python http tornado web-frameworks
我一直在研究 tornado web 框架,但我仍然没有清楚地理解 ioloop 的功能,尤其是如何在多线程中使用它。 是否可以为多个服务器创建单独的 ioloop 实例??
【问题讨论】:
标签: python http tornado web-frameworks
绝大多数 Tornado 应用程序应该只有一个 IOLoop,在主线程中运行。您可以在同一个 IOLoop 上运行多个 HTTPServer(或其他服务器)。
可以创建多个 IOLoop 并为每个 IOLoop 分配自己的线程,但这很少有用,因为 GIL 确保一次只运行一个线程。如果您确实使用多个 IOLoop,则必须小心确保不同的线程仅通过线程安全方法(即 IOLoop.add_callback)相互通信。
【讨论】:
instance()、current()如果有IOLoop就不新建一个IOLoop如何实现“一个线程一个IOLoop”?