我在阅读来自 python文档 的两个描述:
spawn
父进程启动一个全新的Python解释器进程。子进程将只继承运行进程对象run()方法所必需的资源。特别地,不会继承从父进程中不必要的文件描述符和句柄。使用此方法启动进程相对于使用fork或forkserver而言较慢。 [在Unix和Windows上可用。在Windows和macOS上为默认值。]
fork
父进程使用os.fork()来复制Python解释器。当子进程开始时,它实际上与父进程完全相同。子进程继承父进程的所有资源。请注意,安全地复制多线程进程是有问题的。 [仅在Unix上可用。在Unix上为默认值。]
我的问题是:
- 是否因为fork不尝试识别要复制哪些资源,所以速度更快?
- 是否因为fork会复制一切,所以会比spawn()“浪费”更多资源?