0
def task():
    print("Executing our Task on Process {}".format(os.getpid()))

def main():
    executor = ProcessPoolExecutor(max_workers=3)
    task1 = executor.submit(task)
    task2 = executor.submit(task)

if __name__ == '__main__':
    main()

所以我从这个网站上看到了这个程序:https ://tutorialedge.net/python/concurrency/python-processpoolexecutor-tutorial/

我只是想知道您是否可以在任务下拥有多个功能。就像进程池只应该执行一项任务?因为我有一个程序对每个任务都有一个功能,并且想知道如何将它转换为进程池执行器。

任何帮助,将不胜感激。谢谢

4

1 回答 1

0

AProcessPoolExecutor是 的子类Executor。该Executor.submit()方法如下所示:

 submit(fn, *args, **kwargs)

根据文档

安排可调用对象 fn 作为 fn(*args **kwargs) 执行,并返回表示可调用对象执行的 Future 对象。

所以它应该能够运行任何可调用的 - 执行者和它可以执行的任务类型之间没有关系。

这是您提供的代码的简单扩展,您可以使用它来试用:

def task_one():
    print("Executing our first Task on Process {}".format(os.getpid()))

def task_two():
    print("Executing our second Task on Process {}".format(os.getpid()))

def main():
    executor = ProcessPoolExecutor(max_workers=3)
    executor.submit(task_one).result()
    executor.submit(task_two).result()

if __name__ == '__main__':
    main()
于 2020-04-16T04:03:30.250 回答