我正在声明并发哈希表,并在后续线程声明中添加元素。 但是仍然打印空白。 请参见下面的代码:
public static void main(String[] args) throws InterruptedException {
Employee obj = new Employee();
Map<String, String> myMap = new ConcurrentHashMap<String, String>();
Thread T1 = new Thread(new Runnable() {
public void run() {
myMap.put("Los", "angls");
}
});
Thread T2 = new Thread(new Runnable() {
public void run() {
myMap.put("new", "york");
}
});
T1.start();
T2.start();
System.out.println(myMap);
}
ConcurrentHashmap在这里有什么用?如果Hashmap和ConcurrentHashmap都可以通过线程添加元素?
答案 0 :(得分:1)
您正在创建两个Thread
对象,这些对象从未启动。您必须先启动它们,然后等待它们完成(例如,通过调用join
):
T1.start();
T2.start();
T1.join();
T2.join();