#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_counter2. @azro он напечатал имена?
Ответ №1:
После просмотра документации concurrent.futures я обнаружил, что ProcessPoolExecutor не работает в интерактивном интерпретаторе. Поэтому вам нужно создать файл и запустить его через командную строку/оболочку bash.