Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 哪个并发模块最适合IO绑定任务?_Python_Python 3.x - Fatal编程技术网

Python 哪个并发模块最适合IO绑定任务?

Python 哪个并发模块最适合IO绑定任务?,python,python-3.x,Python,Python 3.x,我需要做很多DNS请求。我在看Python并发库,它在简介中说: 工具的适当选择将取决于要执行的任务(CPU限制vs IO限制)和首选的开发风格(事件驱动的协同多任务vs抢占式多任务) 我的任务是IO绑定的,但是文档没有建议使用哪个模块。 哪个模块最适合执行IO绑定任务(例如DNS请求)?如果您不受CPU绑定,我建议您尝试一下标准库异步IO模块以执行i/O绑定操作 这里有一个用于异步dns请求的第三方模块,该模块依赖于asyncio: 干杯 我们在讨论多少并发dns请求?我的案例有5-10

我需要做很多DNS请求。我在看Python并发库,它在简介中说:

工具的适当选择将取决于要执行的任务(CPU限制vs IO限制)和首选的开发风格(事件驱动的协同多任务vs抢占式多任务)

我的任务是IO绑定的,但是文档没有建议使用哪个模块。
哪个模块最适合执行IO绑定任务(例如DNS请求)?

如果您不受CPU绑定,我建议您尝试一下标准库异步IO模块以执行i/O绑定操作

这里有一个用于异步dns请求的第三方模块,该模块依赖于asyncio:


干杯

我们在讨论多少并发dns请求?我的案例有5-10个请求。但任何情况下的一般经验法则都是我所需要的。什么是“最佳”:特定情况下的最佳性能、可读/简洁的代码、在多个平台上的可移植性/健壮性、stdlib中的可用性等。例如,
ips=ThreadPool(10)。map(make_dns_request,hosts)
是您进行5-10次并发请求所需的全部。注意,OSX上的多线程dns请求可能存在问题。