【发布时间】:2014-03-31 05:34:40
【问题描述】:
我有多个线程和一个变量。我将此变量设置为一个字符串中的字符串值,然后在另一个线程中使用该最新变量。然而,它似乎并没有跨线程更新。我已将变量设置为
public volatile String userInput = null;
变量用作:
Server s = new Server();
while (s.userInput==null)
{
}
System.out.println(s.userInput);
command = s.userInput;
等到变量有值,然后将当前类中的变量分配给它。该变量在 Server 类中设置。
它还需要别的东西吗?还是 volatile 错了?谢谢,非常感谢:)
【问题讨论】:
-
你应该告诉我们你在哪里使用这个字段。
-
你甚至可以使用静态字段在线程对象之间共享数据成员
-
寻找解决方案here。
-
似乎每个线程都有一个不同的实例。
-
@cooperHawk 让它成为静态已经奏效了,干杯
标签: java multithreading variables volatile