每个线程有更多TCPClients或更多线程

本文关键字:TCPClients 多线程 线程 | 更新日期: 2025-02-18 01:32:03

我需要一些关于我们正在开发的项目的指导。当触发时,我的程序需要通过TCP与1000台设备联系,并交换大约200字节的信息。所有客户端都是在专用网络上无线连接的。程序大部分时间都处于空闲状态,但需要尽快发送这些消息。我想出了两种可能的方法:

方法1使用线程池来建立多个工作线程,并让这些线程处理1000个会话。一个线程处理一个会话直到完成。然后将调整线程池中的线程数量,以实现资源的最佳利用。

方法2多个线程将用于处理每个线程的多个会话。例如,一个线程进程将打开10个套接字连接,启动会话,然后使用异步方法等待响应。通信完成后,将联系一个新设备。

方法2看起来更有效,因为操作不必等待服务器设备响应。它还可以节省启动和停止所有这些线程的开销。

我在这里的方向对吗?我错过了什么或没有考虑什么?

每个线程有更多TCPClients或更多线程

有一种行之有效的方法来处理这个问题。只需使用异步IO。根本不需要维护任何线程。异步IO在进行中时不使用线程。

多亏了await,做这件事很容易。

select/poll模型在.NET中已过时。