1

我有以下代码:

public Hashmap<String,String> tempmap = new HashMap<String,String>();

和一个类函数:

void f1(){
    synchronized(onClassVariable1){
    ....Some code onClassVariable1...
    String tempString = tempMap.toString();
    ... Some work onClassVarible1 and tempString ...
    }
  }

多个线程通过这个类的一个对象调用这个函数 f1 ..

这个函数是线程安全的吗??

4

2 回答 2

6

这取决于是否存在不同步onClassVariable1和修改的方法tempMap

于 2012-04-04T10:33:58.213 回答
1

没有什么HashMap线程安全的,Javadoc 是这么说的:“如果多个线程同时访问一个哈希映射,并且至少有一个线程在结构上修改了映射,那么它必须在外部同步。”

于 2012-04-04T10:43:43.147 回答