我目前正在使用3.4学习Python
我已经构建了一个基本的网络检查工具,我从文本文件中导入项目,对于每个我想要python检查dns(使用pydns),Ping ip(使用子进程调用OS本机Ping).
目前我正在检查5000到9000千个IP地址,并且需要花费数小时,大约4个返回所有结果.
我想知道我是否可以使用多处理或线程来加快速度,但仍然将输出返回到列表中,以便可以将该行写入脚本末尾的csv文件中.
我是python的新手所以请告诉我,如果我忽略了我应该做的事情.
主要代码
http://pastebin.com/ZS23XrdE
类
http://pastebin.com/kh65hYhG
看一下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多处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)