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