我现在正在写一些已有的代码(使用Gevent的Python),我将NGINX用作Web服务器,我觉得两者都很棒。有人告诉我,与事件有折衷,但看不到。有人可以放光吗?

詹姆士

有帮助吗?

解决方案

最大的问题是,如果没有线程,一个客户端的块将为所有客户端造成一个块。例如,如果一个客户端请求OS来阻止请求过程的资源(在磁盘上的文件,分页内存等),则所有客户端都必须等待。多线程服务器可以阻止一个客户端,并继续为其他客户服务。

也就是说,如果上述情况不太可能(也就是说,所有客户都会要求相同的资源),那么事件驱动是必经之路。

其他提示

事件编程的唯一困难是您绝不能阻止。如果您使用一些考虑到线程的库,这可能很难实现。如果您不控制这些库,则需要fork() +消息IPC。

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