同步作为同一用户连接的不同客户端-Java套接字

问题描述 投票:0回答:1

对于一个大学项目,我开发了一个用Java编写的客户端-服务器应用程序,该应用程序允许多个连接。简而言之,连接是“无状态”(?),每个客户端都有一个标识特定用户并执行操作的令牌(每个操作都会打开连接,写入请求,等待响应并关闭连接)。] >

现在,我对同步有疑问,因为它有一个已知的问题:尝试在同一用户上同步操作,我正在使用一个ConcurrentHashMap

,其中包含tuple [UUID,Object],UUID对于使用相同令牌用户的每个客户端来说都是唯一的,而Object是我synchronize在磁盘上进行读写的方法的类。

问题是,当打开连接并且令牌有效时,我将元组添加到HashMap(如果不存在),并且当关闭连接时,我从HashMap中删除了元组。

如您所见,如果两个(或多个)客户端希望同时对同一用户执行操作,则存在这样一个风险,即一个人会在没有他的元组的情况下找到HashMap,但是老实说(从未这样做过)我不知道如何解决问题。


我试图对可能导致错误的服务器上的指令流进行简要概述。


我希望我尽可能清楚,感谢您的提前帮助。

对于一个大学项目,我开发了一个用Java编写的客户端-服务器应用程序,该应用程序允许多个连接。简而言之,连接是“无状态”(?),每个客户端都有一个令牌,表示...

java sockets server synchronization client
1个回答
0
投票

我已经尝试用此类解决这个问题:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.