龙卷风 ioloop + 线程
Tornado ioloop + threading
我从一段时间以来一直在研究tornado web框架,但我仍然没有清楚地理解ioloop的功能,尤其是如何在多线程中使用它。
是否可以为多个服务器创建单独的 ioloop 实例??
绝大多数 Tornado 应用程序应该只有一个 IOLoop,运行ning 在主线程中。您可以在同一个 IOLoop 上 运行 多个 HTTPServer(或其他服务器)。
可以创建多个 IOLoop 并为每个 IOLoop 分配自己的线程,但这很少有用,因为 GIL 确保一次只有一个线程 运行ning。如果您确实使用多个 IOLoops,则必须小心确保不同线程仅通过线程安全方法(即 IOLoop.add_callback)相互通信。
我从一段时间以来一直在研究tornado web框架,但我仍然没有清楚地理解ioloop的功能,尤其是如何在多线程中使用它。 是否可以为多个服务器创建单独的 ioloop 实例??
绝大多数 Tornado 应用程序应该只有一个 IOLoop,运行ning 在主线程中。您可以在同一个 IOLoop 上 运行 多个 HTTPServer(或其他服务器)。
可以创建多个 IOLoop 并为每个 IOLoop 分配自己的线程,但这很少有用,因为 GIL 确保一次只有一个线程 运行ning。如果您确实使用多个 IOLoops,则必须小心确保不同线程仅通过线程安全方法(即 IOLoop.add_callback)相互通信。