python有多进程
python提供了跨平台的多进程模块:multiprocessing (python的os.fork()调用linux平台的多进程fork(),但是不跨平台,win下无法使用)
multiprocessing模块的Process类代表一个进程对象,以下实现创建简单的进程对象:
def func():
print("子进程running。。",os.getpid())
if __name__=="__main__":
print("父进程。。。",os.getpid())
pro1=Process(target=func)
print("子进程 start。。",pro1.pid)
pro1.start()
pro1.join()
print("子进程 end。。",pro1.pid)
结果:
父进程。。。 16432
子进程 start。。 None
子进程running。。 16433
子进程 end。。 16433
Process类创建一个新的进程,Process(target=func_name,args=(args1,[argsn...]))target参数传入执行函数,带参数的话,参数赋值给args,这是一个tuple,注意tuple类型的赋值:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
进程函数:
start():进程已经准备完毕,系统可以执行进程了,但是什么时候执行,由系统决定。
join():等该进程执行完毕再执行下一句,通常用于进程见的同步