Python难以并行运行函数

时间:2017-11-16 17:24:04

标签: python multithreading

我目前正在使用python 2.6并尝试使用不同的输入多次运行另一个python脚本,无论我在后台运行它做什么,似乎脚本等待进程完成,然后再继续到下一行。我尝试过使用

subprocess.Popen(Some.Func(Args))

T1 = threading.Thread(Some.Func(Args)) T1.start()

我希望能够通过多次调用Some类来完成,而无需等待任何特定的类完成。

1 个答案:

答案 0 :(得分:1)

您没有正确地将参数传递给您的类。您想使用multiprocessing.Processthreading.Thread。分别指定targetargs。以下示例演示并行运行十个进程,然后并行运行十个进程:

#! /usr/bin/env python3
import multiprocessing
import threading


def main():
    for executor in multiprocessing.Process, threading.Thread:
        engines = []
        for _ in range(10):
            runner = executor(target=for_loop, args=(0, 10000000, 1))
            runner.start()
            engines.append(runner)
        for runner in engines:
            runner.join()


def for_loop(start, stop, step):
    accumulator = start
    while accumulator < stop:
        accumulator += step


if __name__ == '__main__':
    main()