使用多进程获取商誉占比

【问题描述】t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

请用多进程的方式同时爬取多个公司的商誉信息,提高程序执行速度。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用多进程获取商誉占比输出结果:t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

运行1次get_all_mp函数花费时间:2.501972198486328秒t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用多进程获取商誉占比t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【题前思考】t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

根据问题描述,填写表8-2-1。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

表8-2-1 问题分析t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用多进程获取商誉占比t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【解题思路】t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

从代码的角度来看,多线程程序和多进程程序的代码是类似的,区别在于多进程方式是使用multiprocessing模块中的Pool类来创建进程池对象,然后调用该对象的map( )方法来并行执行函数。Pool类的map( )方法的参数及返回值的意义与concurrent.futures.ThreadPoolExecutor类的map( )方法相似。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【参考代码】t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用多进程获取商誉占比t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【代码分析】t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

①:从multiprocessing模块导入Pool类和cpu_count( )函数。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

②:定义函数get_all_mp( )以多进程方式获取公司商誉数据。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

③:创建进程池对象p,进程数量为CPU数量。cpu_count( )函数用于取得逻辑CPU数量,如双核四线程CPU将会认为有4个CPU。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

④:调用map( )方法以多进程方式并行执行函数get_proportion_of_goodwill( ),各函数参数在列表stocklist中,各函数调用返回值以列表形式返回到变量res。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【技术全貌】t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

进程池Pool可以自动控制进程。Pool类可以提供指定数量的进程供用户调用,当有新的请求提交到Pool中时,如果进程池还没有满,就会创建一个新的进程来执行请求;如果池满,请求就会告知先等待,直到池中有进程结束。使用Pool来创建和管理进程的方法见表8-2-2。t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

表8-2-2 使用Pool创建和管理进程的方法t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用多进程获取商誉占比t46100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

关 键 词

商誉占比

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢