A 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()