怎么让所以线程访问同一个ConcurrentHashMap
时间: 2023-10-14 12:21:21 浏览: 77
Java中的ConcurrentHashMap:线程安全的哈希表实现与代码示例
可以将ConcurrentHashMap对象作为参数传递给所有线程,或者将其设置为静态变量,这样所有线程都可以访问它。另外,也可以使用单例模式来创建ConcurrentHashMap对象,保证所有线程访问同一个对象。具体实现可以参考以下代码:
```
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapDemo {
private static ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
new Thread(new Runnable() {
@Override
public void run() {
// 访问ConcurrentHashMap对象
map.put(Thread.currentThread().getName(), 1);
System.out.println(map);
}
}).start();
}
}
}
```
在上面的代码中,我们将ConcurrentHashMap对象设置为静态变量,并在多个线程中访问它。每个线程将自己的线程名作为键,值为1,然后输出整个ConcurrentHashMap对象。因为ConcurrentHashMap是线程安全的,所以所有线程都可以安全地访问和修改它。
阅读全文