在Python项目中,我使用ThreadPoolExecutor对程序进行多线程处理。
我用一个对象的实例使用一个线程来运行一种方法。目前,我使用以下语法:
class Fqdn():
def port_scan(self):
# Do a TCP scan
pass
# Used because I must submit a function with ThreadPoolExecutor
def port_scan(fqdn):
fqdn.port_scan()
with concurrent.futures.ThreadPoolExecutor(max_workers=THREAD_LIMIT) as executor:
# fqdn_list is a list of Fqdn instances
for fqdn in fqdn_list:
executor.submit(port_scan, fqdn)
您是否有任何想法可以让我向执行者提交方法实例?
最佳答案
传递bound method,fqdn.port_scan
:
with concurrent.futures.ThreadPoolExecutor(max_workers=THREAD_LIMIT) as executor:
# fqdn_list is a list of Fqdn instances
for fqdn in fqdn_list:
executor.submit(fqdn.port_scan)
关于multithreading - 实例方法上的Python ThreadPoolExecutor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31159165/