Java Chat多客户端接收线程

时间:2015-11-13 12:40:32

标签: java multithreading client-server chat

在许多多客户端java程序中,人们使用一个单独的线程,它只接收来自服务器的消息。真的有必要吗?为什么不能在主线程中完成?应该是什么问题?

对我来说,从服务器接收消息的单独线程不是必需的,可以简单地做为主。

我错了吗?

3 个答案:

答案 0 :(得分:0)

不,如果在main方法中完成,那么应用程序的其余部分将等到收到消息。如果您的应用程序仅接收消息,这可能没问题。但是,如果您的应用程序执行其他操作(例如接受用户输入以便发送消息),则应用程序将无法执行其他任务(例如用户输入),直到收到消息为止。

编辑:

多个客户端也会遇到困难

答案 1 :(得分:0)

是的,你是。至少如果你想要一些实用的东西。 如果您定期获得更新,则需要等待每x ms / s / min的服务器输入被读取,如果您直接从服务器接收消息,则每次有人发送消息时都需要等待,甚至无法处理多个消息一次。

现在添加一个图形界面,你会碰到一个试图通过1个线程处理它的墙。

不管怎样它都没有意义。

答案 2 :(得分:0)

6 年后,我想回答过去的自己。

更多上下文:多客户端聊天是使用 Swing 的 GUI 聊天。这是一个高中项目。

main 方法会循环读取从服务器接收到的消息。由于所有其他客户端操作都是基于事件的,因此事件处理无论如何都将在单独的线程上完成。

是的,它当时非常有效!