1.copyonwritearraylist 是執行緒安全的arraylist,適用於儲存的資料量不大,讀操作遠多於寫操作,對實時性要求不高的場景。copyonwritearraylist 對
讀操作不同步,對寫操作同步。在進行寫操作時,會對共享變數進行copy,在副本上進行更新,然後將更新好的副本替換掉原來的共享變數。寫操作開銷比較大。由於讀操作不需同步,所以在某執行緒進行寫操作時,其他執行緒可以進行讀操作。這樣也就導致了資料不是實時一致的。
2.copyonwritearraylist 屬性
transient final reentrantlock lock = new reentrantlock();//用於控制寫操作的併發
/** the array, accessed only via getarray/setarray. */
private volatile transient object array;//儲存元素
3.add函式原始碼
public boolean add(e e) finally
}
總體來說比較簡單
4 .remove函式原始碼
public e remove(int index)
return oldvalue;
} finally
}
參考:
Cartographer原始碼篇 原始碼分析 1
在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...
AbstractListView原始碼分析3
normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...
Android AsyncTask原始碼分析
android中只能在主線程中進行ui操作,如果是其它子執行緒,需要借助非同步訊息處理機制handler。除此之外,還有個非常方便的asynctask類,這個類內部封裝了handler和執行緒池。本文先簡要介紹asynctask的用法,然後分析具體實現。asynctask是乙個抽象類,我們需要建立子...