【发布时间】:2019-04-30 22:16:22
【问题描述】:
我有一个主机列表和一个端口列表。 我想运行 X 线程,每次都会抓取一个主机并尝试连接到这些端口。 我得到了连接部分,我的问题是如何穿线。 当我做一些研究时,我对线程、多进程和异步感到非常困惑。 什么是最优化和/或最简单的库?
现在我的伪代码没有线程代码是:
def getHosts():
hosts = open("hostList.txt").read().splitlines()
return hosts
def getPorts():
ports = open("portList.txt").read().splitlines()
hosts = getHosts()
ports = getPorts()
for host in hosts
for port in ports
---the connection code---
我认为我的一般想法是取列表的长度,将其除以线程数并创建一个线程,该线程将从 thread_number*result_of_divide 运行直到 (thread_number+1)*result_of_divide。
【问题讨论】:
-
请注意,由于GIL,线程和异步不允许并行运行代码。因此,对于并行执行,您将需要多处理(或其他编程语言:))
-
@YevhenKuzmovych 感谢您的帮助,GIL 非常有趣,我希望我会使用 ThreadPoolExecutor 来实现它。
标签: python multithreading