如何访问线程变量?

时间:2012-11-20 14:02:47

标签: java multithreading

如何从线程外部访问线程变量,我在线程中有我想从主程序或服务访问的哈希映射。

public class Sample {

class Thread {

//private synchronized hashmap declared here
}

}

我想访问其他类中Thread中声明的hashmap,比如Class Abc

1 个答案:

答案 0 :(得分:0)

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

更新:在您的情况下,我会执行以下操作:

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

    void foo() {
        // Access from here
    }

    class Thread {
        // And from here
    }
}

你可以把它变成私有的,但是关于内部类和私有的话还有很多话要说。