阅读量:0
在Java中,可以使用Collections类的synchronizedMap方法创建一个同步的Map。以下是使用Collections.synchronizedMap方法的示例:
import java.util.Collections; import java.util.HashMap; import java.util.Map; public class SynchronizedMapExample { public static void main(String[] args) { // 创建一个普通的HashMap Map<String, Integer> map = new HashMap<>(); // 使用Collections.synchronizedMap方法创建一个同步的Map Map<String, Integer> synchronizedMap = Collections.synchronizedMap(map); // 向同步的Map中添加元素 synchronizedMap.put("key1", 1); synchronizedMap.put("key2", 2); synchronizedMap.put("key3", 3); // 在多线程环境中遍历同步的Map Runnable runnable = () -> { synchronized (synchronizedMap) { for (String key : synchronizedMap.keySet()) { System.out.println(key + ": " + synchronizedMap.get(key)); } } }; // 创建两个线程来同时遍历同步的Map Thread thread1 = new Thread(runnable); Thread thread2 = new Thread(runnable); thread1.start(); thread2.start(); } }
在上述示例中,首先创建了一个普通的HashMap。然后使用Collections.synchronizedMap方法将其转换为同步的Map。接下来向同步的Map中添加了一些键值对。最后,创建了两个线程来同时遍历同步的Map,并使用synchronized关键字来确保同一时间只有一个线程可以访问Map。