HashMap.toString()方法的线程安全性

时间:2012-04-04 10:32:02

标签: java thread-safety hashmap tostring

我有以下代码:

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 ..

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

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