.net上多线程服务器的最佳方法?

时间:2010-02-07 03:31:24

标签: .net multithreading .net-3.5 sockets

我想开发一个服务器,它将侦听某些特定端口以接收来自device的请求。遵循以下步骤处理请求。

  1. 从套接字流中读取数据(从设备发送)
  2. 将字节数据解析为业务对象
  3. 通过ado.net图层使用数据库使用业务对象处理请求
  4. 将二进制响应发送到设备
  5. 上述所有步骤都需要一小段时间才能完成。

    目前我正在使用线程池来使服务器成为多线程。

    我的目标是制作一台每秒可处理最多请求的服务器。

    我应该采用什么方法来开发最高效的服务器,然后再测试这台服务器 请求处理验证能力。

    由于

1 个答案:

答案 0 :(得分:3)

我喜欢你在使用线程池做的事情。我唯一的建议是限制池,因为它默认为池中的50个线程,这比我读过的任何内容都要多。使用那么多线程进行上下文切换可能会变得很荒谬。将其数量设置为服务器中核心数量的3-5倍。

测试它非常简单。如果只是添加行来更改线程数,则添加精度计时器。一旦你编写另一个小应用程序来激发一堆服务器请求,看看有多少线程是最快的。如果您更改了更多代码,请在计算机上获取SVN服务器,并使用各种版本分支代码并使用上述测试应用程序和计时器进行测试。