python点击按钮创建进程_Python Process创建进程

fork()函数只能用于Linux、Unix系统之上,无法运行在Windows系统之上,这样就影响了Python的跨平台特性。因此需要利用另一个模块去创建进程,保证在各种平台上都能保证程序的正常运行。

所以我们现在通过Process去创建进程

1、利用Process创建进程

例:利用Process创建进程

使用Process之前,需要导入multiprocessing模块。

cdc1ce36c8b1

cdc1ce36c8b1

cdc1ce36c8b1

cdc1ce36c8b1

使用Process创建进程时,需要为target参数指定一个函数名,当执行到p.start()方法时,进程就会调用该函数名指向的函数,运行函数中的代码,直到函数结束。

2、Process调用带参数的函数

例:调用带参数的函数

cdc1ce36c8b1

cdc1ce36c8b1

如果Process的target参数调用的函数中带有参数,需要在Process初始化时,需要使用args参数,接收的类型为元组,其中的值会传递给target中的形参,进而完成带参数函数的调用。

如果函数只需要一个参数,直接赋值也可以,如果需要多个参数,则需要使用元组类型进行赋值。

上述创建Process的过程有一个弊端,Process初始化时总需要绑定一个执行参数,耦合性比较大,因此我们需要使用另一种更灵活的方式去使用Process创建进程。

3、创建Process子类

例:创建Process子类

cdc1ce36c8b1

cdc1ce36c8b1

以Process为基类,创建Process子类,将Process要调用的程序写在子类重写父类的run()方法中,创建Process子类对象后,调用子类对象的start()方法,调用start()方法后。会调用run()方法,因此就会执行Process子类中的run()方法。

Process类的主要方法有:

start():启动进程,并调用该子进程中的p.run()

run():进程启动进运行的方法,就是它去调用target指定的函数,我们自定义类的类中一定要实现该方法。

terminate():强制终止进程。不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,使用此方法需要小心:如果此进程还保存了一个锁那么也将不会释放这个锁,进而导致死锁。

is_alive():判断进程是否是“活着”的状态。

join([timeout]):让主线程等待某一子进程结束,才继续执行主进程。timeout是可选的超时时间。超过一个时间主进程就不等待了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值