在python中使用multiprocessing中的一个Process类来实现跨平台的多进程操作
下面就利用python创建一个简单的多进程程序
import os
from multiprocessing import Process
import time
#定义一个函数
def dowmload(filename,type,**kwargs):
print("开启下载进程ID:%s"%(os.getpid()))
dvece = kwargs["deviceType"]
if dvece == "xiaomi":
print("获取xiaomi对应的文件:%s.%s"%(filename,type))
time.sleep(5)
print("%s.%s下载完成"%(filename,type))
if __name__ == "__main__":
#os.getpid() 获取当前进程的ID
# print("主进程id:%s"%(os.getpid()))
# target :进程实例化所调用的对象
# args :调用对象位置的参数(注意是一个元组)
# kwargs :调用对象的关键字参数(是一个字典)
# name :当前进程的别名
p = Process(target=dowmload,args=("logo","png"),kwargs={"deviceType":"xiaomi"},name="下载")
print("主进程(%s)将被执行"%p.name)
#开启进程
p.start()
#注意:target调用的是函数名
**以上有几个地方需要大家注意
- if name==”main“:表示当当前模块作为主程序运行时,才会执行后面的代码,当这个木块被调用时,则不会执行,这就避免再生产环境中由于测试代码造成的影响。
- args 表示一个元组,当只需要传递一个参数是,书写格式应为(a ,)
- target 调用函数时仅仅是函数名
**