Java 聊天多客户端接收线程

Java Chat Multi-Client Receiving thread

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

对我来说,一个单独的线程来接收来自服务器的消息并不是那么必要,它可以简单地成为主要的。

我错了吗?

不,如果它是在 main 方法中完成的,那么应用程序的其余部分将等到收到消息。如果您的应用程序只接收消息,这可能没问题。但是,如果您的应用程序做了其他事情,例如接受用户输入以发送消息,那么在收到消息之前,应用程序将无法执行其他任务(例如用户输入)。

编辑:

如果有多个客户也很难

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

现在添加一个图形界面,您将 运行 变成一堵墙,试图通过 1 个线程来处理它。

反正也没有意义。

时隔6年我要回答过去的自己

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

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

是的,当时效果非常好!