Als ich mir die Multiprozessdokumentation ansah, sah ich eine Beschreibung, dass zwischen dem Speicher des durch os.fork() oder mutiprocess erstellten untergeordneten Prozesses und dem Hauptprozess ein Copy-on-Write-Mechanismus vorhanden ist, was bedeutet, dass der untergeordnete Prozess dies tut Kopieren Sie den Speicher des Hauptprozesses.
Da das Dokument, das ich gesehen habe, auf Linux lief, habe ich es unter Windows getestet.
Lesen Sie ein größeres Dokument im Hauptprozess, erstellen Sie einen Prozess und erstellen Sie direkt einen untergeordneten Prozess.
Nach dem Vergleich hat nur einer der Prozesse einen größeren Speicherbedarf.
Entschuldigung, wenn Python in Windows einen Unterprozess erstellt, kopiert es dann den Speicher des Hauptprozesses? Wenn das Kopieren erfolgt, in welchem Schritt erfolgt das Erstellen eines Unterprozesses, das Starten eines Unterprozesses oder das Kopieren beim Schreiben? Gibt es Bücher, die die verschiedenen Einsatzmöglichkeiten von Python ausführlicher und systematischer erklären?
写时复制(COW)
只是对于fork
实现而言, 但是在windows
是直接CreateProcess
, 应该是不会有这个过程, 具体可以谷歌下CreateProcess
的原理和实现, 也能参考下面的链接:windows下创建进程,CreateProcess()详解及用法