所以我有一个在类级别声明的 HashMap,如下所示:
private static volatile HashMap<String, ArrayList>String>> map =
new HashMap<String, ArrayList>String>>();
我有几个线程更新同一个地图,线程在类级别声明如下:
private class UpdateThread extends Thread {
@Override
public void run() {
// update map here
// map actually gets updated here
}
}
但是在线程退出后:
for (FetchSKUsThread thread : listOfThreads) {
thread.start();
}
for (FetchSKUsThread thread : listOfThreads) {
try {
thread.join();
// map not updated anymore :-[
} catch (InterruptedException e) {
e.printStackTrace();
}
}
为什么线程内部发生的映射更改在线程完成后不会持续存在?我已经将地图贴上了静态和易失性...
提前致谢