最好编写单线程事件服务器等

问题描述

| 什么时候编写单线程事件或多线程或fork服务器更好?哪种方法更适合: 提供静态信息的Web服务器 提供静态信息和对其他http服务器的代理请求的Web服务器 以前的服务器加上此服务器在C语言中进行了一些逻辑处理,而无需使用硬盘或网络 以前的加号对MySQL提出了一些要求? 例如,语言是C / C ++。我非常想理解这个问题。谢谢。     

解决方法

鉴于现代处理器是多核的,因此您应该始终在某些时候假设它是多线程的前提下编写代码(在任何可能和不可能的地方都采用可重入的代码,请使用易于插入实现必要的锁定)。 如果每秒查询(qps)的数量很少,那么您也许可以摆脱单线程事件服务器的困扰。我仍然建议以允许多线程的方式编写代码,但是,如果您增加了qps并需要处理更多事件,则该代码是可以的。 单线程服务器可以通过将其转换为分支服务器来扩展。但是,分叉服务器会使用更多资源-使用分叉服务器时,所有请求共有的任何内存最终都会在内存中重复,而在一台多线程服务器中仅需要此数据的一个副本。同样,如果多线程服务器利用了真正的并行性,则可以提供较低的延迟,并且实际上可以并行执行单个请求处理的多个部分。     ,在joelonsoftware上对单线程与多线程服务器进行了很好的讨论,     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...