python线程池执行器线性执行

2022-05-21 07:39:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用一个ThresPoolExecutor对象来执行四个线程,并使用一个函数来接收几个使用过但不是更改的参数。当我读取程序的日志文件时,我可以看到每个新线程只有在前一个线程完成后才会执行(我的机器有足够的CPU)。我当然希望它们并行运行,因为它们彼此完全独立

我的代码是:

with ThreadPoolExecutor(max_workers=4) as executor:
    rows += executor.submit(concurrent_comparison, df, model, transformer, n, lock, set(s[0]), str(0)).result()
    rows += executor.submit(concurrent_comparison, df, model, transformer, n, lock, set(s[1]), str(1)).result()
    rows += executor.submit(concurrent_comparison, df, model, transformer, n, lock, set(s[2]), str(2)).result()
    rows += executor.submit(concurrent_comparison, df, model, transformer, n, lock, set(s[3]), str(3)).result()

Tags: 对象lockdfmodelresult线程concurrentcomparisonrowssubmitsettransformerstrexecutorthrespoolexecutor