当前位置:  开发笔记 > 运维 > 正文

如何最小化tcp服务器应用程序中使用的线程数?

如何解决《如何最小化tcp服务器应用程序中使用的线程数?》经验,为你挑选了1个好方法。

我正在寻找人们在实现服务客户端TCP(或UDP)请求的服务器应用程序时使用的任何策略:设计模式,实现技术,最佳实践等.

我们假设为了这个问题的目的,请求是相对长寿的(几分钟),并且流量是时间敏感的,因此在响应消息时没有可接受的延迟.此外,我们既处理来自客户端的请求,又将自己的连接发送到其他服务器.

我的平台是.NET,但由于底层技术与平台无关,我很有兴趣看到任何语言的答案.



1> Mark Renouf..:

现代方法是利用操作系统为您复用许多网络套接字,将您的应用程序释放为仅处理与流量的活动连接.

无论何时打开套接字,它都会将其与选择器相关联.您使用单个线程轮询该选择器.每当数据到达时,选择器将指示活动的套接字,将该操作移交给子线程并继续轮询.

这样,每个并发操作只需要一个线程.打开但空闲的套接字不会占用线程.

使用select()和poll()方法

使用Java NIO构建高度可扩展的服务器

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有