在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 methodfqdn.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/

10-12 03:25
查看更多