【发布时间】:2010-02-23 22:18:09
【问题描述】:
我正在寻找一种可用于处理许多长轮询客户端并且不会为每个请求创建线程的方法。
【问题讨论】:
-
怎么可能不创建另一个线程?事实上,它为什么会选择这样做呢?
-
Tornado 能够只用一个线程处理请求。 Tornado 没有为每个 HTTP 请求生成一个新线程,而是在其核心中有一个无限循环。在循环的开始,它使用系统调用来检测是否有客户端想要连接到服务器而不实际读取任何数据。之后立即处理这些请求。请注意,当循环处理这些请求时,新连接仍然可以访问服务器。他们只是等待接受。在循环的下一次迭代中,这些待处理的请求将再次得到处理。
标签: c# asp.net-mvc sockets comet server-push