加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java服务器客户端线程问题

发布时间:2020-12-15 08:40:47 所属栏目:Java 来源:网络整理
导读:你好 我有一个非常简单的客户端 – 服务器程序,它使用模拟简单atm的套接字. 在程序的客户端部分,我有一个gui类和另一个与服务器通信的线程,因此gui和逻辑是分开的,并且在等待线程与服务器通信时gui也没有冻结. 我创建了一个线程,因为在连接时创建了clientsoc
你好
我有一个非常简单的客户端 – 服务器程序,它使用模拟简单atm的套接字.
在程序的客户端部分,我有一个gui类和另一个与服务器通信的线程,因此gui和逻辑是分开的,并且在等待线程与服务器通信时gui也没有冻结.

我创建了一个线程,因为在连接时创建了clientsocket,并且它贯穿整个会话.问题是我让线程在无限循环中循环并询问gui用户是否按下任何键以便它可以处理这些操作.

关于此事的最佳做法的任何建议?
我不想使用RMI,因为我是出于教育原因而开发的.

干杯

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读