java - java中如何将变量设置为全局变量

标签 java client-server global-variables multiplayer static-variables

在多人在线游戏中。如何保持变量全局?我们正在开发一个在线游戏,我们需要一个全局变量。将有一个服务器和多个客户端。我们如何保持一个静态且可由所有客户端同步编辑的公共(public)变量。我们可以提供一些建议吗?

最佳答案

如果您迁移到集群,拥有基于堆的变量将成为一个问题,因为它不够全局(每个节点将有一个单独的副本)。

如果这不是问题,并且“变量”指的是像 String 或 Long 这样的简单事物,那么最好的选择是使用 java.util.concurrent.Atomic*类。例如,

public static final AtomicLong id = new AtomicLong();

这样做最重要的优点是可以使用compare-and-swap和get-and-set进行原子更新,例如id.getAndIncrement();

关于java - java中如何将变量设置为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343772/

相关文章:

java - jna4412392371053342294.dll : Can't find dependent libraries

Java - 覆盖抽象方法

java - 客户端-服务器套接字编程

c++ - 什么时候初始化全局静态常量变量?

python - 在 Python 类中定义全局变量

java - 在ubuntu上运行java文件时出现NoClassDefFoundError

java - 将属性 'source' 设置为 'org.eclipse.jst.jee.server:GestorContenidoWS' 未找到匹配的属性。尝试所有解决方案

c - 如果套接字绑定(bind)到 eth0 接口(interface),则 Poll 返回 pollhup 和 pollerr

linux - Indy 10 TCPServer 不与 Linux 上连接的客户端通信

python - 动态变量总是链接到 Python 中的方法