你好,我想了解tornado/eventlet基于HTTP的服务器是否比线程服务器更好。在搜索过程中,我看到它们是单线程事件驱动服务器,可以在socket上进行select/poll/epoll操作后运行单个处理程序函数。
- 我的第一个问题是,tornado/eventlet是否类似于Java中的nio库,而Java nio服务器是非阻塞且快速的。
- 我的第二个问题是,由于这些事件驱动的服务器是单线程的,如果一个连接在文件IO或慢客户端上阻塞,会导致整个服务器挂起吗?
- 我的第三个问题是,如果非阻塞服务器很快,那么为什么它不像apache那样普及呢?
这些问题是相关的,我希望能得到合适的回答。
谢谢!