CopyOnWriteArrayList這是一個ArrayList的線程安全的變體
其原理大概可以通俗的了解為:初始化的時候隻有一個容器,很常一段時間,這個容器資料、數量等沒有發生變化的時候,大家(多個線程),
都是讀取(假設這段時間裡隻發生讀取的操作)同一個容器中的資料,
是以這樣大家讀到的資料都是唯一、一緻、安全的,但是後來有人往裡面增加了一個資料,
這個時候CopyOnWriteArrayList 底層實作添加的原理是先copy出一個容器(可以簡稱副本),再往新的容器裡添加這個新的資料,
最後把新的容器的引用位址指派給了之前那個舊的的容器位址,但是在添加這個資料的期間,其他線程如果要去讀取資料,仍然是讀取到舊的容器裡的資料。