欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

write有幾種常見實現方式

錢斌斌2年前17瀏覽0評論

write有幾種常見實現方式?

1、CopyOnWriteArrayList是線程安全的List,底層數據結構也是數組結構,不過通過volatile修飾,使得寫操作之后立即刷新內存,使得其他線程讀最新的數據。是基于CopyOnWrite機制實現的線程安全的List

2、CopyOnWriteArrayList每次插入數據都會進行一次擴容,容量加1,并且在寫之前都需要通過ReentrantLock加鎖處理,然后復制原數組,寫完數據之后直接覆蓋原數組

3、CopyOnWriteArrayList的讀操作沒有加鎖處理,所以會存在臟讀問題,可能會讀到其他線程以及修改,但是還沒有替換原數組的數據

4、CopyOnWriteArrayList每次插入數據都會涉及到數組的復制,所以不適合頻繁寫而導致頻繁復制數組的場景,而讀沒有加鎖,所以適合寫少讀多的場景。

5、CopyOnWriteArrayList通過迭代器循環時,只可以循環讀,而不可以執行寫操作,因為迭代的數據是副本數據。

6、CopyOnWriteArrayList的set方法當設置數據一直時也同樣會復制數組,不是為了保證數組的可見性,而是為了保證外部非volatile變量的happen-before關系,從而實現volatile的語義。

java迭代 set,write有幾種常見實現方式