gpt4 book ai didi

Java服务器客户端线程问题

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:33:39 26 4
gpt4 key购买 nike

你好我有一个非常简单的客户端-服务器程序,它使用套接字模拟一个简单的 atm。在程序的客户端部分,我有一个 gui 类和另一个与服务器通信的线程,因此 gui 和逻辑是分开的,并且在等待线程与服务器通信时 gui 不会卡住。

我创建了一个线程,因为 clientsocket 是在连接时创建的,并在整个 session 中存在。问题是我让线程无限循环并询问 gui 用户是否按下了任何键,以便它可以照顾的行动。

关于这个问题的最佳做法有什么建议吗?我不想使用 RMI,因为我正在出于教育原因进行开发。

干杯

最佳答案

你可以使用 BlockingQueue . GUI 和客户端线程可以访问同一个队列对象。为响应用户操作,GUI 可以将 () 命令对象放入队列中。客户端线程仍将有一个 while 循环,但将使用 take() 将命令对象从队列中拉出。 take() 将使用适当的线程同步原语进行阻塞,因此您不会遇到繁忙的循环。客户端命令后的服务器响应可能涉及更新某些本地状态和/或更新 gui,如果 SwingWorker 我不会感到惊讶。参与其中。

有很多方法可以解决这个问题,但这是第一个跳入我脑海的方法。

关于Java服务器客户端线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6151690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com