Java服务器客户端线程问题
发布时间:2020-12-15 08:40:47 所属栏目:Java 来源:网络整理
导读:你好 我有一个非常简单的客户端 – 服务器程序,它使用模拟简单atm的套接字. 在程序的客户端部分,我有一个gui类和另一个与服务器通信的线程,因此gui和逻辑是分开的,并且在等待线程与服务器通信时gui也没有冻结. 我创建了一个线程,因为在连接时创建了clientsoc
你好
我有一个非常简单的客户端 – 服务器程序,它使用模拟简单atm的套接字. 在程序的客户端部分,我有一个gui类和另一个与服务器通信的线程,因此gui和逻辑是分开的,并且在等待线程与服务器通信时gui也没有冻结. 我创建了一个线程,因为在连接时创建了clientsocket,并且它贯穿整个会话.问题是我让线程在无限循环中循环并询问gui用户是否按下任何键以便它可以处理这些操作. 关于此事的最佳做法的任何建议? 干杯 解决方法
您可以使用
BlockingQueue. GUI和客户端线程可以访问同一个队列对象.响应用户操作,GUI可以将()命令对象放入队列.客户端线程仍然有一个while循环,BUT将使用take()从队列中拉出命令对象. take()将阻止使用正确的线程同步原语,因此您不会有繁忙的循环.客户端命令之后的服务器响应可能涉及更新某些本地状态和/或更新gui,如果
SwingWorker参与,我不会感到惊讶.
有很多方法可以解决这个问题,但这是第一个跳到我脑海中的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |