-1

如何从线程外部访问线程变量,我有线程内部的哈希图,我想从我的主程序或服务访问它。

public class Sample {

class Thread {

//private synchronized hashmap declared here
}

}

我想访问在其他类的 Thread 中声明的 hashmap 可以说 Class Abc

4

1 回答 1

0

多线程访问数据的真正问题是同步。如果您有一个包含数据的地图,请将其设为 ConcurrentHashMap并将其放置以便您可以访问它。现在您可以访问地图中的数据了。请注意,您的代码中可能存在其他需要更多同步的依赖项,但至少访问映射中的数据是安全的。

更新:在你的情况下,我会做类似的事情:

public class Sample {
    Map mMyMap = new ConcurrentHashMap();

    void foo() {
        // Access from here
    }

    class Thread {
        // And from here
    }
}

您可以将其设为私有,但是关于内部类和私有的内容有很多话要说,这超出了这个问题的范围。

于 2012-11-20T14:13:30.580 回答