ConcurrentHashMap锁分段机制
 
java5.0在juc包中提供了多种并发容器来改进同步容器的性能ConcurrentHashMap同步容器类是java5增加的一个线程安全的哈希表,对于多线程的操作,介于HashMap(线程不安全)与Hashtable(线程安全)之间,内部采用锁分段机制替代了Hashtable的独占锁,进而提高性能此包还提供乐设计用于多线程上下文的Collection实现:ConcurrentHashMap,ConcurrentSkipListMap,ConcurrentSkipListSet,CopyOnWriteArrayList和CopyOnWriteArraySet,当期望喜多线程访问一个给定Collection时,ConcurrentHashMap通常优于同步的HashMap,ConcurrentSkipListMap通常优于同步的TreeMap,当期望的读数和遍历远远大于列表的更新数时,CopyOnWriteArrayList优于同步的ArrayList。 测试: 
public class Test1 {
	public static void main(String
[] args
) {
		MyThread td 
= new MyThread();
		for(int i 
= 0;i 
< 10;i 
++) {
			new Thread(td
).start();
		}
	}
}
class MyThread implements Runnable{
	
	private static List
<String> list 
= Collections
.synchronizedList(new ArrayList<String>());
	
	static {
		list
.add("AA");
		list
.add("BB");
		list
.add("CC");
	}
	
	@Override
	public void run() {
		Iterator
<String> iterator 
= list
.iterator();
		if(iterator
.hasNext()) {
			System
.out
.println(iterator
.next());
			
			list
.add("DD");
		}
	}
	
}
 
结果: Exception in thread “Thread-5” AA java.util.ConcurrentModificationException 使用CopyOnWriteArrayList:
 
private static CopyOnWriteArrayList
<String> list 
= new CopyOnWriteArrayList<String>();
 
添加操作多时,效率低,因为每次添加时都会进行复制,开销非常大,并发迭代操作多时可以选择。
 
想了想,还是打算面试前再来复习复习这个.