python 3.4多处理

python 3.4多处理,第1张

概述这个问题是寻求建议以及一些代码的帮助. 我目前正在使用3.4学习Python 我已经构建了一个基本的网络检查工具,我从文本文件中导入项目,对于每个我想要python检查dns(使用pydns),ping ip(使用子进程调用OS本机ping). 目前我正在检查5000到9000千个IP地址,并且需要花费数小时,大约4个返回所有结果. 我想知道我是否可以使用多处理或线程来加快速度,但仍然将输出返回到 这个问题是寻求建议以及一些代码的帮助.

我目前正在使用3.4学习Python
我已经构建了一个基本的网络检查工具,我从文本文件中导入项目,对于每个我想要python检查dns(使用pydns),Ping ip(使用子进程调用OS本机Ping).

目前我正在检查5000到9000千个IP地址,并且需要花费数小时,大约4个返回所有结果.

我想知道我是否可以使用多处理或线程来加快速度,但仍然将输出返回到列表中,以便可以将该行写入脚本末尾的csv文件中.

我是python的新手所以请告诉我,如果我忽略了我应该做的事情.

主要代码
http://pastebin.com/ZS23XrdE


http://pastebin.com/kh65hYhG

解决方法 由于大部分工作都是基于IO的,因此您可以轻松地依赖Threads.

看一下cocurrent.futures中的Executor.map()函数:
https://docs.python.org/3/library/concurrent.futures.html

您可以针对每个元素传递IP列表和要运行的函数,虚拟返回值是给定函数的结果列表.

在您的特定情况下,您可以将两个worker的方法(check_dns_ip和os_Ping)包装在一个方法中,并将其传递给ThreadPoolExecutor.map函数.

总结

以上是内存溢出为你收集整理的python 3.4多处理全部内容,希望文章能够帮你解决python 3.4多处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存