在查看多进程文档的时候看到一段描述,os.fork()或者mutiprocess的创建的子进程和主进程的内存存在copy on write机制,也就是说子进程会复制主进程的内存。
因为看到的文档是在linux上,所以在windows上测了下。
在主进程中读入一个较大的文档再创建进程,和直接创建子进程。
比较后,仅其中一个进程内存占用变大。
请问,在windows中 python创建子进程是否会拷贝主进程的内存?如果会拷贝是在哪个步骤出现,建立子进程,还是启动子进程,或者是copy on write?有那些书比较详细系统的说明python的各种使用?
滿天的星座2017-06-12 09:25:56
写时复制(COW)
只是对于fork
实现而言, 但是在windows
是直接CreateProcess
, 应该是不会有这个过程, 具体可以谷歌下CreateProcess
的原理和实现, 也能参考下面的链接:
windows下创建进程,CreateProcess()详解及用法