線程安全的map有哪些?
1、synchronizedMap
Map<String,Object> synchronizedMap= Collections.synchronizedMap(new Hashtable<String,Object>());它其實就是加了一個對象鎖,每次操作hashmap都需要先獲取這個對象鎖,這個對象鎖有加了synchronized修飾,鎖性能跟hashtable差不多
2、concurrentHashMap
Map<String,Object> concurrentHashMap=new ConcurrentHashMap<String,Object>();
這個是目前使用最多,而且也是最推薦的一個集合,實現也是比較復雜的一個。我們看源碼其實是可以發現里面的線程安全是通過cas+synchronized+volatile來實現的,其中也可看出它的鎖是分段鎖,所以它的性能相對來說是比較好的。整體實現還是比較復雜的。