Jam*_*mes 9 python asynchronous libevent gevent
我现在正在写一些事件代码(使用gevent在python中),我使用nginx作为Web服务器,我觉得两者都很棒.有人告诉我,事件有一个权衡,但无法看到它.有人可以解释一下吗?
詹姆士
最大的问题是,如果没有线程,一个客户端的阻塞将导致所有客户端的阻塞。例如,如果一个客户端请求一种需要操作系统阻止请求进程的资源(磁盘上的文件、调出内存等),则所有客户端都将不得不等待。多线程服务器可以仅阻止一个客户端并继续为其他客户端提供服务。
也就是说,如果上述情况不太可能出现(即所有客户端都将请求相同的资源),那么事件驱动就是正确的选择。