所以我接受了学校练习,在那里我要用java制作一个聊天服务器。我已经在TCP中完成了,但我也可以在UDP中完成它。
我开始做一些线程实现,但现在我不确定应该如何处理它,以及要创建多少线程。 所以,这是我的方法:
服务器需要1个线程用于运行,1个线程用于接收消息,1个线程用于发送消息。此外,我为每个连接的客户端创建了一个线程,服务器放入ClientThread [],然后用于每个客户端的消息传递。这总共有13个线程(最多10个客户端)
此外,我猜每个本地客户端都需要一个本地线程,用于发送和接收消息。
这是正确的方法吗?让服务器运行13个线程会有问题吗?
提前致谢!
答案 0 :(得分:2)
您的方法看起来很稳固,但您并不真正想要处理如此多的客户端线程。您应该使用Threadpools
您在内存中存储已初始化的线程列表,您只能在启动时打开它们并在关闭时关闭它们。每次客户端/服务器需要发送消息时,您将使用一个线程,然后将其返回到池中(而不是关闭它)。您还可以将池配置为按需增长