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ì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. 查詢mysql數(shù)據(jù)庫中指定表指定日期的數(shù)據(jù)?有詳細(xì)2. mysql - 怎么生成這個sql表?3. mysql儲存json錯誤4. php - 公眾號文章底部的小程序二維碼如何統(tǒng)計?5. mysql - 表名稱前綴到底有啥用?6. mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決7. Navicat for mysql 中以json格式儲存的數(shù)據(jù)存在大量反斜杠,如何去除?8. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現(xiàn)存在即更新應(yīng)該使用哪個標(biāo)簽?9. mysql - 數(shù)據(jù)庫建字段,默認(rèn)值空和empty string有什么區(qū)別 11010. sql語句 - 如何在mysql中批量添加用戶?
