首页 > 技术文章 > multiprocessing的Process类的简单使用

zhangboblogs 2018-03-22 14:23 原文

'''
跨平台的进程创建模块(multiprocessing)
支持跨平台 :window/linux

multiprocessing提供一个Process类来代表一个进程对象
'''

from multiprocessing import Process
import os

def download(filename,type,**kwargs):
    #这里是子进程的id  Return the current process id
    # getppid :Return the parent's process id
    print("开启进程: %s 进行下载操作"%os.getppid())
    print(filename,type,kwargs)
    if kwargs['device'] == 'iphoneX':
        path = "http://www.langlang2017.com/iphoneX"
    #把图片地址连接起来
    print('下载:%s/%s.%s'%(path,filename,type))

#1,创建和启动
#创建格式:  p = Process(target=函数名)

#主进程
if __name__ == '__main__':
    #随机给主进程的id Return the current process id.
    #real signature unknown
    # 签名; 署名; 识别标志,鲜明特征; [医] 药的用法说明
    #主进程也有父级进程id
    print("main Process:%s"%os.getpid())
    # 注意函数名没有括号 name没有进行传参
    p = Process(target=download,name='下载进程(子进程)',
                args=('logo','png'),
                kwargs={'device':'iphoneX','peizhi':'high'})
    print('%s' % p.name)
    p.start()
    print('%s' % p.name)

'''
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
group:分组(基本不用)
target:表示这个进程实例所调用的对象。
name:给进程起一个别名
args:参数,表示调用对象的位置参数元组
kwargs:表示调用对象的关键字参数字典。
'''

 

推荐阅读