我应该在gevents上选择asyncio以在Python3.x中实现并行处理吗?

问题描述 投票:0回答:1

该任务是使用子进程模块同时在日志文件上运行多个UNIX grep命令。同步运行这些grep命令非常耗时,因此希望将其并行化。

我想并行运行的Grep命令:

grep "start" /var/log/application/start.log.gz
grep "end" /var/log/application/end.log.gz
grep "proceed" /var/log/application/proceed.log.gz

我应该选择使用asyncio还是选择gevent?

python-3.x parallel-processing multiprocessing python-asyncio gevent
1个回答
0
投票

Q我应该选择使用asyncio还是选择gevents

嗯,两个都不好。

[如果确实有合理的动机同时启动这些任务,并且以最小的开销附加成本(正确的话,基于python进程的执行就要付出巨大的进程实例附加成本,其中python的副本解释器状态首先被重新创建(请阅读有关其他一致性风险的文档详细信息,为此,fork实例化方法开始被认为对其允许的O / S不安全(在2020-Q1中并非全部))/

[最好尝试使用设计正确,智能且经过良好调整的工具gnu parallel(最好从读取可配置的所有man parallel职位提交选项的parallel开始)

示例:

$ parallel --jobs 3           \
           --halt now,fail=1   \
           --joblog LastRUN.log \
      grep {} /var/log/application/{}.log.gz ::: start proceed end
© www.soinside.com 2019 - 2024. All rights reserved.