gpt4 book ai didi

c# - 对于 C# 中的多客户端 TCP 服务器,如何在线程之间划分工作?

转载 作者:可可西里 更新时间:2023-11-01 02:51:26 25 4
gpt4 key购买 nike

<分区>

在 C# 中创建多客户端服务器时,我可以想到几种方法来在线程之间划分工作。

对于这个问题,假设服务器接受来自客户端的传入 TCP 连接,并且每个客户端向服务器发送一个文件,以存储在硬盘上。

工作部门 1:每个客户的线程:服务器将为每个连接的新客户端实例化一个新线程,该线程将负责该客户。(那些线程,除了 1 个“服务器线程”)

工作部门 2:每个资源的线程:将有 1 个线程用于处理通信,和 1 个用于写入硬盘的线程。客户端对象将在这些资源负责线程中的每一个之间传递,并且每个资源负责线程都有自己的队列,因此它可以知道自己应该做什么。(同样,这些线程是 1 个“服务器线程”的补充)

工作分部 3:主任务的每个子任务的线程:让我们将每个连接客户端需要完成的工作称为“主要任务”。所以我们将把这个主要任务分解成几个子任务,并为每个子任务创建一个线程,同样,每个线程都会有一个队列来保存它应该处理的客户端项目。(这听起来与二区类似,但在另一个工作不同而不是文件接收服务器的项目中,这种类型的区可能与二区有很大不同)

我的问题是:

是否有其他建议的方法来划分线程之间的工作?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com