我對CopyOnWrite的思考

2021-09-08 20:09:40 字數 787 閱讀 6290

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.希望我們年輕...