当它更好地编写单线程事件服务器等

时间:2011-05-26 04:54:19

标签: c network-programming server-side

什么时候更好地编写单线程事件或多线程或fork服务器?哪种方法更适合:

  1. 提供静态的网络服务器
  2. 向其他http服务器提供静态和代理请求的Web服务器
  3. 之前加上此服务器在C中制作一些逻辑而不参加硬盘或网络
  4. previous plus向MySQL提出了一些请求?
  5. 例如,语言是C / C ++。我非常想解决这个问题。谢谢。

2 个答案:

答案 0 :(得分:0)

鉴于现代处理器是多核的,你应该总是在假设它可能在某种程度上是多线程的情况下编写代码(尽可能使事物重入,并且在不可能的地方,使用易于插入的接口)执行必要的锁定。)

如果您的查询每秒(qps)相当少,那么您可以使用单线程事件服务器。我仍然建议以允许多线程的方式编写代码,但是,如果你增加了qps并需要处理更多的事件。

单线程服务器可以通过将其转换为分叉服务器来扩展;但是,分叉服务器使用更多资源 - 使用分叉服务器时,所有请求共有的任何内存最终都会重复存储在内存中,而单个多线程服务器中只需要一个此数据副本。此外,如果多线程服务器利用真正的并行性并且实际上可以并行执行单个请求处理的多个部分,则可以提供更低的延迟。

答案 1 :(得分:0)

joelonsoftware上有关单线程与多线程服务器的讨论,