Код: Выделить всё
import concurrent.futures
import datetime
def do_stuff(arg):
start_time = datetime.now()
# do stuff
end_time = datetime.now()
return f"Finished task with arg {arg} in {end_time-start_time}"
if __name__ == '__main__':
with concurrent.futures.ProcessPoolExecutor() as executor:
results = []
for arg in args: # args is a list of arguments to be passed
print(f"Starting task with arg {arg}")
results.append(executor.submit(do_stuff, arg))
for f in concurrent.futures.as_completed(results):
print(f.result())
- Запуск задачи с аргументом 1
- Задача с аргументом 2 начинается
- Задача с arg3 начинается
- Задача с arg2 завершается
- Задача с arg4 начинается
- Задача с аргументом 1 завершается
- Задача с аргументом 4 завершается
- Задача с arg3 завершается
Код: Выделить всё
Starting task with arg arg1
Starting task with arg arg2
Starting task with arg arg3
Finished task with arg arg2 in mm:ss
Starting task with arg arg4
Finished task with arg arg1 in mm:ss
Finished task with arg arg4 in mm:ss
Finished task with arg arg3 in mm:ss
- Задача с аргументом 1 запускается
Код: Выделить всё
Starting task with arg arg1 - Задача с arg2 запускается
Код: Выделить всё
Starting task with arg arg1 Starting task with arg arg2 - Задача с arg3 запускается
Код: Выделить всё
Starting task with arg arg1 Starting task with arg arg2 Starting task with arg arg3 - Задача с arg2 завершается
Код: Выделить всё
Starting task with arg arg1 Starting task with arg arg2 - finished in mm:ss Starting task with arg arg3 - Задача с аргументом 4 запускается
Код: Выделить всё
Starting task with arg arg1 Starting task with arg arg2 - finished in mm:ss Starting task with arg arg3 Starting task with arg arg4 - Задача с аргументом 1 завершается
Код: Выделить всё
Starting task with arg arg1 - finished in mm:ss Starting task with arg arg2 - finished in mm:ss Starting task with arg arg3 Starting task with arg arg4 - Задача с аргументом 4 завершается
Код: Выделить всё
Starting task with arg arg1 - finished in mm:ss Starting task with arg arg2 - finished in mm:ss Starting task with arg arg3 Starting task with arg arg4 - finished in mm:ss - Задача с arg3 завершается
Код: Выделить всё
Starting task with arg arg1 - finished in mm:ss Starting task with arg arg2 - finished in mm:ss Starting task with arg arg3 - finished in mm:ss Starting task with arg arg4 - finished in mm:ss
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Мобильная версия