在多线程系统中访问静态变量

时间:2011-03-03 16:08:26

标签: java

我必须在第一个java程序中从控制台获取一个输入。那个输入我必须传入第二个java程序,它从第一个java程序的main方法作为线程执行。

我将变量设置为静态并尝试在第二个java程序中访问,但它显示空值(默认值)。

我不应该也是第一个程序的对象。 请建议我怎么做?

2 个答案:

答案 0 :(得分:0)

如果您的第一个java程序使用类似O.S.的函数启动第二个程序,这些函数产生与从控制台启动时相同的效果,那么您将拥有JVM的第二个实例,其中所有内容都“重置”。这就是你得到那个空的原因。

建议将值作为第二个程序的参数传递。

答案 1 :(得分:0)

据我所知,Java中没有实现共享内存机制。管道也不能跨VM边界工作,因此您必须使用JNI和C代码来创建机制。

但是,如果这两个程序紧密合作,为什么不让它们在一个VM中并使用线程呢?安全原因是我唯一能想到的。