windows python 子進(jìn)程內(nèi)存是否存在復(fù)制主進(jìn)程情況
問題描述
在查看多進(jìn)程文檔的時候看到一段描述,os.fork()或者mutiprocess的創(chuàng)建的子進(jìn)程和主進(jìn)程的內(nèi)存存在copy on write機(jī)制,也就是說子進(jìn)程會復(fù)制主進(jìn)程的內(nèi)存。
因為看到的文檔是在linux上,所以在windows上測了下。在主進(jìn)程中讀入一個較大的文檔再創(chuàng)建進(jìn)程,和直接創(chuàng)建子進(jìn)程。比較后,僅其中一個進(jìn)程內(nèi)存占用變大。
請問,在windows中 python創(chuàng)建子進(jìn)程是否會拷貝主進(jìn)程的內(nèi)存?如果會拷貝是在哪個步驟出現(xiàn),建立子進(jìn)程,還是啟動子進(jìn)程,或者是copy on write?有那些書比較詳細(xì)系統(tǒng)的說明python的各種使用?
問題解答
回答1:寫時復(fù)制(COW)只是對于fork實現(xiàn)而言, 但是在windows是直接CreateProcess, 應(yīng)該是不會有這個過程, 具體可以谷歌下CreateProcess的原理和實現(xiàn), 也能參考下面的鏈接:windows下創(chuàng)建進(jìn)程,CreateProcess()詳解及用法
相關(guān)文章:
1. css - 對于類選擇器使用的問題2. javascript - 奇怪的Symbol的問題3. python - 為什么在main()函數(shù)里result 會變成那樣?4. javascript - Web微信聊天輸入框解決方案5. angular.js - angular ng-class里面的引號問題6. docker - 如何修改運(yùn)行中容器的配置7. 網(wǎng)頁爬蟲 - 用Python3的requests庫模擬登陸B(tài)ilibili總是提示驗證碼錯誤怎么辦?8. javascript - es6將類數(shù)組轉(zhuǎn)化成數(shù)組的問題9. javascript - 有沒有什么好的圖片懶加載的插件,需要包含監(jiān)聽頁面滾動高度,然后再加載的功能10. html - vue項目中用到了elementUI問題
