Tornado是“一个用Python编写的相对简单,无阻塞的Web服务器框架” - 可以解释一下这意味着什么?

StackOverflow https://stackoverflow.com/questions/1419624

  •  07-07-2019
  •  | 
  •  

这可能是一个愚蠢的问题,但究竟什么是“非阻止网络服务器”?所有的Web服务器在技术上都是非阻塞的,不是吗?否则他们怎么能处理同时连接? Apache2使用fork()和pthreads的组合实现了这一点。龙卷风(和Twisted)究竟有何不同?他们只是将一堆套接字设置为非bocking模式,构建FD列表(或等效的),然后通过一个大的select()sys调用来循环它吗?

您将在哪里使用这样的框架,以及它们可以通过Apache2(或其他流行的服务器)提供哪些优势?感谢

有帮助吗?

解决方案

有关EventMachine的文章也可以给你一个提示:

  

沉浸在分叉的传统中/   线程网络服务器我发现自己   当我加入其中一个时相当惊讶   大学的研究项目   几年前滑铁卢:我们   正在对不同的Web服务器进行基准测试   建筑和表现最佳的人   所有事件驱动的服务器。

     

当我用问题纠缠每个人时,   我很快意识到为什么 - 在一个   环境有数十万   请求第二个,分叉和上下文   与线程相关的切换   管理变得令人望而却步   昂贵(叉子表现最差,如   它在父级上执行内存复制   每次处理)。然而   比较,紧张而且高度   优化的事件循环真的很闪耀   谈到绩效   重负荷。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top