一:使用synchronized關鍵字
二:使用collections.synchronizedlist();使用方法如下:
假如你建立的**如下:list> data=new arraylist>();
那麼為了解決這個執行緒安全問題你可以這麼使用collections.synchronizedlist(),如:
list> data=collections.synchronizedlist(new arraylist>());
額外說下 arraylist與linkedlist;這兩個都是介面list下的乙個實現,用法都一樣,但用的場所的有點不同,arraylist適合於進行大量的隨機訪問的情況下使用,linkedlist適合在表中進行插入、刪除時使用,二者都是非執行緒安全,解決方法同上(為了避免執行緒安全,以上採取的方法,特別是第二種,其實是非常損耗效能的)。
如何保證ArrayList執行緒安全
一 繼承arraylist,然後重寫或按需求編寫自己的方法,這些方法要寫成synchronized,在這些synchronized的方法中呼叫arraylist的方法。二 使用collections.synchronizedlist 使用方法如下 假如你建立的 如下 list data new ar...
如何保證ArrayList執行緒安全
一 繼承arraylist,然後重寫或按需求編寫自己的方法,這些方法要寫成synchronized,在這些synchronized的方法中呼叫arraylist的方法。二 使用collections.synchronizedlist 使用方法如下 假如你建立的 如下 list data new ar...
安卓 多執行緒
方法1 建立單獨的執行緒 new thread new runnable start 方法2 利用執行緒池 private executorservice executorservice executors.newfixedthreadpool 4 上面是建立乙個固定大小的執行緒池,這裡面的執行緒不...