【问题标题】:Differentiating between server threads (user connections)区分服务器线程(用户连接)
【发布时间】:2012-03-22 16:36:20
【问题描述】:

我想知道区分服务器连接的最佳方法是什么。我的客户端连接有自己的线程,我的目标是与其他 2 个用户(总共 3 个)组成一个群组,有点像大厅。

我目前正在查看 ThreadGroup 并尝试将每 3 个用户分配给一个线程组,但是我不确定这是否完全正确,因为我看不到任何明确的方法来查找哪些用户在哪个线程组中.

如果有人能指出我正确的方向,那将非常有帮助。

【问题讨论】:

  • 将用户(或其他类别的线程)分组的目标是什么?
  • 基本上他们是在寻找可以一起玩的玩家,最多 3 人,因此它可以让服务器跟踪特定用户组的分数和游戏轮次等。
  • 我不会为这个卢克使用ThreadGroup。我想要一个线程集合或一个可以存储额外元数据的自定义类。
  • 好的,这似乎更有意义,我会试一试。谢谢。
  • 我可以在上面备份@Gray。如果要对客户端进行分组,请将它们的套接字对象放入某个集合中。锁定集合,以便可以添加新的 clint 并以托管方式删除断开连接的客户端。将所有内容链接起来 - 将集合实例放在每个客户端实例中,以便客户端可以访问集合并获取其组成员的列表。

标签: java multithreading client client-server


【解决方案1】:

我不会将ThreadGroup 用于线程分类。 ThreadGroup 允许线程执行操作并获取有关线程集合的信息。我认为您不需要此功能。

我会使用Collection 类之一将您的用户或游戏线程分组在一起。 Collection 可以在用于存储游戏状态的自定义类中。

如果您需要查找需要更多成员的游戏,那么我将有一个 Collection 的需要您在用户登录/退出时添加和删除的成员的游戏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2021-10-22
    相关资源
    最近更新 更多