这个问题:java static variable and process
有没有办法在多个进程之间共享静态变量?例如,通过编写从磁盘加载相同类的自定义类加载器。
答案 0 :(得分:4)
没有。这是不可能的。
每个进程都在一个单独的地址空间中。一个进程在另一个进程地址空间中看不到任何内容。这适用于所有进程,而不仅仅是Java进程。
一个进程在另一个进程地址空间中查看内容的唯一方法是2个进程是否具有公共共享内存段。在C / C ++中,可以这样做......如果你小心处理进程间同步。
在Java中,共享内存方法不实用:
static
变量。班级代表没有帮助。一个java进程/地址空间中的类加载器将类加载到 地址空间中。其他流程无法看到它们,也无法看到相应的静态变量。
答案 1 :(得分:0)
您可以使用存储变量的数据库来执行此操作,并且所有VM实例都应该读取和写入这些变量的基础。