CopyOnWrite容器理解

2021-08-06 06:11:45 字數 413 閱讀 8749

什麼是copyonwrite容器

copyonwrite容器即寫時複製的容器。通俗的理解是當我們往乙個容器新增元素的時候,不直接往當前容器新增,而是先將當前容器進行copy,複製出乙個新的容器,然後新的容器裡新增元素,新增完元素之後,再將原容器的引用指向新的容器。這樣做的好處是我們可以對copyonwrite容器進行併發的讀,而不需要加鎖,因為當前容器不會新增任何元素。所以copyonwrite容器也是一種讀寫分離的思想,讀和寫不同的容器。copyonwritearraylist在add、remove操作的時候使用reentrantlock加鎖,然後複製乙個新的陣列,在新的陣列上進行修改操作,修改完成後,指向新的陣列

copyonwrite容器只能保證資料的最終一致性,不能保證資料的實時一致性。 所以如果你希望寫入的的資料,馬上能讀到,請不要使用copyonwrite容器。

理解IOC DI IOC容器

下面的不要看,啥也不是 控制反轉 ioc 不需要你乙個個的去new class,而是只需要你在服務中注入服務 交給容器去建立 依賴注入 di 容器建立好後,再到你使用的時候,從容器把服務拿出來用的過程。這個過程包含 屬性注入,建構函式注入 當你使用ioc,程式啟動的時候,這裡是有2個過程 1 sta...

記憶體的COPY ON WRITE機制

剛了解到。趕快記下來。每個程式都有自己的資料段,段。補充 dll有自己的資料段,但沒有自己的堆疊。乙個dll,被很多程式呼叫,為什麼 段共享,資料段不共享?就是因為 記憶體的copy on write 機制 程式1呼叫這個dll,執行過程中,dll的資料段肯定會改變,那記憶體就會被copy乙份,原來...

Copy On Write寫時複製

copy on write解決的問題 早期unix系統建立程序的方式存在缺陷 當發出fork 系統呼叫時,核心原樣複製父程序的整個位址空間並把複製的那乙份分配給子程序。這種行為是非常耗時的,因為它需要 為子程序的頁表分配頁幀 為子程序的頁分配頁幀 初始化子程序的頁表 把父程序的頁複製到子程序相應的頁...