如何从线程外部访问线程变量,我在线程中有我想从主程序或服务访问的哈希映射。
public class Sample {
class Thread {
//private synchronized hashmap declared here
}
}
我想访问其他类中Thread中声明的hashmap,比如Class Abc
答案 0 :(得分:0)
多线程访问数据的真正问题是同步。如果您有包含数据的地图,请将其设为ConcurrentHashMap,并将其放置以便您可以访问它。现在,您可以访问地图中的数据。请注意,代码中可能存在需要更多同步的其他依赖项,但至少访问映射中的数据是安全的。
更新:在您的情况下,我会执行以下操作:
public class Sample {
Map mMyMap = new ConcurrentHashMap();
void foo() {
// Access from here
}
class Thread {
// And from here
}
}
你可以把它变成私有的,但是关于内部类和私有的话还有很多话要说。