python 实现多进程
方法一:
from urllib import request
from multiprocessing import Process
import os
#下载器函数
def downloader(url,**kwargs):print('当前进程id:',os.getpid(),os.getppid())#os.getpid()获取当前进程id,os.getppid()获取当前进程父进程idprint('关键字参数:',kwargs['pro'])#文件名file_name = url.split('/')[-1]#网络请求response = request.urlopen(url)#一个响应对象#获取响应的内容content = response.read()#保存with open(file_name,'wb') as fp:fp.write(content)
if __name__ == '__main__':url_list = ['https://www.baidu.com/img/baidu_jgylogo3.gif','http://www.offcn.com/statics/images/zgimg/index2019.png']name_list = ['进程1--张翠花','进程2---赵铁蛋']p_list = []#进程列表i = 0for url in url_list:n = name_list[i]i = i+1p = Process(target=downloader,name=n,args=(url,),kwargs={'pro':"最高等级"})print('子进程(%s)将要被运行~!'%p.name)p.start()p_list.append(p)for p in p_list:p.join()#对所有子进程加上阻塞,等到子进程全部执行完毕,再继续执行主进程print('主进程id:',os.getpid())#确保这一句代码在所有子进程结束print('~~~~~~~~~~~~~~~~~~~~所有文件下载完成!~~~~~~~~~~~~~~~~~~~~~~~')
方法二
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_list = ['https://www.baidu.com/img/baidu_jgylogo3.gif','http://www.offcn.com/statics/images/zgimg/index2019.png']for url in url_list:p = Process_Class(url)p.start()
python 实现多进程相关推荐
- Python multiprocess 多进程模块
转发:http://www.langzi.fun/Python multiprocess 多进程模块.html 需要注意的是,如果使用多线程,用法一定要加上if __name__=='__main__ ...
- Python TimedRotatingFileHandler 多进程环境下的问题和解决方法
Python TimedRotatingFileHandler 多进程环境下的问题和解决方法 原文:https://my.oschina.net/lionets/blog/796438 Python ...
- python 利用多进程实现文件的拷贝
python 利用多进程实现文件的拷贝 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37338590/article/details/784 ...
- python多进程优化_『Python』多进程处理
尝试学习python的多进程模组,对比多线程,大概的区别在: 1.多进程的处理速度更快 2.多进程的各个子进程之间交换数据很不方便 多进程调用方式 进程基本使用multicore() 进程池优化进程的 ...
- python中多进程+协程的使用以及为什么要用它
前面讲了为什么python里推荐用多进程而不是多线程,但是多进程也有其自己的限制:相比线程更加笨重.切换耗时更长,并且在python的多进程下,进程数量不推荐超过CPU核心数(一个进程只有一个GIL, ...
- python多线程多进程
一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...
- python爬虫多进程_Python爬虫技术--基础篇--多进程
要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识. Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊.普通的函数调用,调用一次,返回 ...
- Python使用多进程提高网络爬虫的爬取速度
多线程技术并不能充分利用硬件资源和大幅度提高系统吞吐量,类似需求应使用多进程编程技术满足. 以爬取中国工程院院士简介和照片为例,参考代码如下,请自行分析目标网页结构并与参考代码进行比对.另外需要注意, ...
- python分布式多进程框架 Ray
全栈工程师开发手册 (作者:栾鹏) python教程全解 并行和分布式计算是现代应用程序的主要内容.我们需要利用多个核心或多台机器来加速应用程序或大规模运行它们.网络爬虫和搜索所使用的基础设施并不是在 ...
- python + selenium多进程爬取淘宝搜索页数据
python + selenium多进程爬取淘宝搜索页数据 1. 功能描述 按照给定的关键词,在淘宝搜索对应的产品,然后爬取搜索结果中产品的信息,包括:标题,价格,销量,产地等信息,存入mongodb ...
最新文章
- Windows上IDEA搭建最新Spark2.4.3源码阅读及调试的开发环境
- 以太坊Solidity函数的external/internal,public/private区别
- Java多线程编程的常见陷阱
- Idea使用技巧总结(未完待续)
- 使用 Postman 测试你的 API
- 正则表达式实战---爬取多张图片
- SharePoint学习札记[6] — WebPart之基础
- C++ auto和decltype关键字
- check the status of 'dd' in progress
- JS实现60s倒计时(亲测有效),及span标签如何使用和禁用onclick事件
- Origin抗锯齿和出现大C
- matlab运行出现:Optimization terminated.
- 计算机教室联想系统管理员密码,联想怎么清除bios超级管理员密码的方法
- 雨林木风 ghost win7 纯净版系统下载
- [转载]2016美国数学建模MCM F题(政策)翻译:难民移入政策建模
- 入门级移动App服务器的软硬件需求
- 床长人工智能教程 - 神经网络是如何进行预测的?
- 关于使用Intellij Idea时java系统找不到指定文件的解决方案
- ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理
- threejs实现液体管道流动的动态效果