python 多进程问题

951 阅读1分钟

新开一个进程,可以使用3种方式:

fork() (linux 默认)

fork 会从父进程中继程变量,当父进程中有变量太大时(大约2G),开新进程分报如下错误:

header = struct.pack("!i", n)
struct.error: 'i' format requires -2147483648 <= number <= 2147483647

这个变量太大,不能pack 使用如下办法解法:
合理安排程序,在这个大变量生成之前,就打开进程(新进程之会继承之前有的变量和函数)

spawn (windows 默认)

会新开一个全新的进程,会把原来的代码重新执行一遍