Java - 为多个客户端制作聊天服务器 - 我需要多少个线程?

Java - Making a chatserver for multiple clients - how many threads do i need?

所以我得到了一个学校练习,我要在 java 中制作一个聊天服务器。我已经在 TCP 中完成了,但我也可以在 UDP 中完成。

我开始做一些线程实现,但现在我不太确定我应该如何处理它,以及要创建多少个线程。 So fare,这是我的方法:

服务器 运行 需要 1 个线程,接收消息需要 1 个线程,发送消息需要 1 个线程。此外,我为每个连接的客户端创建了一个线程,服务器将其放入 ClientThread[],然后用于向每个客户端发送消息。总共有 13 个线程(最多 10 个客户端)

此外,我想每个本地客户端也需要一个本地线程,用于发送和接收消息。

这是正确的方法吗?服务器运行 13个线程会不会有问题?

提前致谢!

您的方法看起来很可靠,但您并不想处理这么多客户端线程的数组。你应该使用 Threadpools

你在内存中存储了一个已经初始化的线程列表,你只在启动时打开它们并在关闭时关闭它们。每次 client/server 需要发送消息时,您将使用一个线程,然后 return 将它发送到池中(而不是关闭它)。您还可以将池配置为按需增长