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

时间:2015-10-26 11:32:15

标签: java multithreading tcp server chat

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

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

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:2)

您的方法看起来很稳固,但您并不真正想要处理如此多的客户端线程。您应该使用Threadpools

您在内存中存储已初始化的线程列表,您只能在启动时打开它们并在关闭时关闭它们。每次客户端/服务器需要发送消息时,您将使用一个线程,然后将其返回到池中(而不是关闭它)。您还可以将池配置为按需增长