copyonwrite
後文中表述為cow
copyonwrite
容器即寫的時候複製乙個新的容器進行寫
:通俗的理解是當我們往乙個容器新增元素的時候,不直接往當前容器
新增,而是先將當前容器
進行copy,複製出乙個新的容器
,然後在新的容器
裡新增元素,新增完元素之後,再將原容器的引用指向新的容器。
我們需要了解到乙個異常叫做:concurrentmodificationexception
。通常對容器進行併發的讀和寫的時候會出現該異常,比如說foreach
遍歷list
的時候往其中add
元素。
了解到concurrentmodificationexception
異常後,我們就可以結合cow
進行思考,如果寫操作的時候不複製乙個容器,仍然是之前的容器,那麼此時併發的讀操作就是對之前容器
進行的操作,乙個容器在被讀的時候,又被另外乙個執行緒進行了寫操作,會報出上述錯誤。
所以copyonwrite容器也是一種讀寫分離的思想,讀和寫不同的容器,不會發生concurrentmodificationexception
異常
可以對copyonwrite
容器進行併發的讀,而不需要加鎖,因為當前容器不會新增任何元素。
記憶體的COPY ON WRITE機制
剛了解到。趕快記下來。每個程式都有自己的資料段,段。補充 dll有自己的資料段,但沒有自己的堆疊。乙個dll,被很多程式呼叫,為什麼 段共享,資料段不共享?就是因為 記憶體的copy on write 機制 程式1呼叫這個dll,執行過程中,dll的資料段肯定會改變,那記憶體就會被copy乙份,原來...
我對我的思考
時間不經意的就過去了四天了,從窗外看著日出日落,聽著水木年華憂傷的情歌,吃著舍友為我們打回來的飯。啊!大學的生活原來還有這麼美好,生命總是給你出其不意的一頁。可是,總有一些好事者卻喊著 放我們出去 等等的口號,我不明白他 她 們究竟 want to do?這也許就是人與人之間至少是在思想的差異吧!就...
我思故我在
關於笛卡爾的此句話,我一直都理解不夠。但不妨我喜歡這句話。從另外乙個角度鼓勵我去思考,去質疑我們接受的東西。我覺得這段時間自己確實是沒有好好留點時間思考事物,思考知識本身,所以都感覺自己有點茫然,茫然中總覺得迷失方向。jobs教導鼓勵我們stay hungry,stay foolish.希望我們年輕...