文章出處

一、繼承Arraylist,然后重寫或按需求編寫自己的方法,這些方法要寫成synchronized,在這些synchronized的方法中調用ArrayList的方法。
 

二:使用Collections.synchronizedList();使用方法如下:

        假如你創建的代碼如下:List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();

        那么為了解決這個線程安全問題你可以這么使用Collections.synchronizedList(),如:

        List<Map<String,Object>> data=Collections.synchronizedList(new ArrayList<Map<String,Object>>());

       其他的都沒變,使用的方法也幾乎與ArrayList一樣,大家可以參考下api文檔;

額外說下 ArrayList與LinkedList;這兩個都是接口List下的一個實現,用法都一樣,但用的場所的有點不同,ArrayList適合于進行大量的隨機訪問的情況下使用,LinkedList適合在表中進行插入、刪除時使用,二者都是非線程安全,解決方法同上(為了避免線程安全,以上采取的方法,特別是第二種,其實是非常損耗性能的)。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()