Java Collection或Map的同步

FrankYou發表於2016-11-08

新集合也提供了能防止多個程式同時修改一個容器內容的機制。若在一個容器裡反覆,同時另一些程式介入,並在那個容器中插入、刪除或修改一個物件,便會面臨發生衝突的危險。我們可能已傳遞了那個物件,可能它位於我們前面,可能容器的大小在我們呼叫size()後已發生了收縮——我們面臨各種各樣可能的危險。針對這個問題,新的集合庫整合了一套解決機制,能查出除我們的程式自己需要負責的之外的、對容器的其他任何修改。若探測到有其他方面也準備修改容器,便會立即產生一個ConcurrentModificationException(併發修改違例)。我們將這一機制稱為“立即失敗”——它並不用更復雜的演算法在“以後”偵測問題,而是“立即”產生違例。

import java.util.*;

/**
 * Created by Frank
 * Collection或Map的同步
 */
public class Synchronization {
    Collection c = Collections.synchronizedCollection(new ArrayList());
    List  list = Collections.synchronizedList(new ArrayList());
    Set s = Collections.synchronizedSet(new HashSet());
    Map m = Collections.synchronizedMap(new HashMap());
}

 

相關文章