python-3.x - 使用多处理或线程或异步进行多任务处理,具体取决于场景
问题描述
我已经准备好一次执行 1 个代码,我想将其升级为花哨的多任务处理。我正在寻求有关我可以用来实现目标的帮助。
我的代码按以下顺序执行:解析多页、解析多篇文章、解析多张图片。我尝试使用 pool.map() 进行多页面处理,结果是 Daemonic 的 KeyError 不能有子进程。我对这个多任务过程的理解是解析页面很快,解析帖子和图像可能真的很长。
如果我在单个页面上同时解析帖子和解析图像怎么办,可以允许吗?
我应该使用哪些模块来做到这一点?线?多处理?异步?我最近经历了很多,我正在为我应该使用的东西而苦苦挣扎。
解决方案
所以在我的脑海中,你可以看两件事。
1)Asyncio(注意这个例子使用线程并且不是线程安全的,特别是函数 asyncio.gather)
import asyncio
for work in [1,2,3,4,5]:
tasks.append(method_to_be_called(work))
results = await asyncio.gather(*tasks)
推荐阅读
- python - pd.to_datetime 没有以正确的格式生成
- javascript - Vue组件渲染期间多次调用的函数
- regex - 带有冒号并用双引号括起来的文本的正则表达式
- python - Django REST Framework URLPathVersioning 不起作用
- c - 如何在结构内部和主外部分配内存?
- scala - 如何从 maptype 中提取键以在 agg 函数中使用它(spark 数据框)
- git - git忽略某些子目录/文件夹及其内容
- node.js - 带有模拟数据的 GraphQL 无法查询所有结果
- javascript - JS ES6 构造一个具有类似于 Laravel 集合的原始和属性的对象
- regex - svn2git 规则正则表达式