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/
我只是想知道您是否可以在任务下拥有多个功能。就像流程池只应该做一项任务吗?因为我有一个程序,每个任务都有一个函数,我想知道如何将它转换为流程池执行器。
如有任何帮助,我们将不胜感激。谢谢
ProcessPoolExecutor
是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()