创建进程的方法

今天学习了创建进程的方法,有两种方法。
方法一:Process([group[,target[,name[,args[,kwargs]]]])
target:进程所调用的对象,一般情况跟函数名,记得不要有括号。
args:调用对象的位置参数,是一个元组。注意:如果参数只有一个,一定记得加逗号。
kwargs:------关键字参数,是一个字典。
name:进程的名字。
方法二:创建一个进程类,这个进程类一定要继承“Process”类
下面来一段代码来实现。
from multiprocessing import Process
import os
from urllib import request

步骤1:继承Process类

class Process_Class(Process):
# 因为Process类本身也有__init__方法,这个子类相当于重写了这个方法。
# 但这样会带来一个问题,我们并没有完成的初始化一个进程类,所以就不能使用这个类继承的一些方法和属性
# 步骤2:使用父类初始化方法初始子类
def init(self,url):
Process.init(self)
self.url = url
# 步骤3:重写Process类中的run方法
def run(self):
print(‘当前进程id:’, os.getpid(), os.getppid())
# 文件名
file_name = self.url.split(’/’)[-1]
# 网络请求
response = request.urlopen(self.url)
# 获取响应的内容
content = response.read()
# 保存
with open(file_name, ‘wb’) as fp:
fp.write(content)
if name == ‘main’:
# 创建URL列表
url_list = [‘http://www.langlang2017.com/img/banner1.png’,
‘http://www.langlang2017.com/img/banner2.png’]
for url in url_list :
# 把调用类赋值给p
p = Process_Class(url)
# 开始调用
p.start()
创建进程的方法_第1张图片

你可能感兴趣的:(创建进程的方法)