При использовании concurrent ничего не печатается.фьючерсы

#python #parallel-processing #python-multiprocessing #concurrent.futures

Вопрос:

Я хочу, чтобы процесс выполнялся параллельно, поэтому я использую concurrent.futures . Проблема в том, что он не выполняет функцию hello().

 import time
import concurrent.futures
def hello(name):
    print(f'hello {name}')
    sleep(1)

if __name__ == "__main__":
    t1=time.perf_counter()
    names=["Jack","John","Lily","Stephen"]


    with concurrent.futures.ProcessPoolExecutor() as executor:
        executor.map(hello,names)

    t2=time.perf_counter()
    print(f'{t2-t1} seconds')
 

Выход

 0.5415315 seconds
 

Комментарии:

1. Я получил совершенно другой результат, для меня он ожидает количество, если указано время, для sleep отображения времени perf_counter

2. @azro он напечатал имена?

Ответ №1:

После просмотра документации concurrent.futures я обнаружил, что ProcessPoolExecutor не работает в интерактивном интерпретаторе. Поэтому вам нужно создать файл и запустить его через командную строку/оболочку bash.