在许多多客户端java程序中,人们使用一个单独的线程,它只接收来自服务器的消息。真的有必要吗?为什么不能在主线程中完成?应该是什么问题?
对我来说,从服务器接收消息的单独线程不是必需的,可以简单地做为主。
我错了吗?
答案 0 :(得分:0)
不,如果在main方法中完成,那么应用程序的其余部分将等到收到消息。如果您的应用程序仅接收消息,这可能没问题。但是,如果您的应用程序执行其他操作(例如接受用户输入以便发送消息),则应用程序将无法执行其他任务(例如用户输入),直到收到消息为止。
编辑:
多个客户端也会遇到困难
答案 1 :(得分:0)
是的,你是。至少如果你想要一些实用的东西。 如果您定期获得更新,则需要等待每x ms / s / min的服务器输入被读取,如果您直接从服务器接收消息,则每次有人发送消息时都需要等待,甚至无法处理多个消息一次。
现在添加一个图形界面,你会碰到一个试图通过1个线程处理它的墙。
不管怎样它都没有意义。
答案 2 :(得分:0)
6 年后,我想回答过去的自己。
更多上下文:多客户端聊天是使用 Swing 的 GUI 聊天。这是一个高中项目。
main 方法会循环读取从服务器接收到的消息。由于所有其他客户端操作都是基于事件的,因此事件处理无论如何都将在单独的线程上完成。
是的,它当时非常有效!