Книга: PyNEng
Назад: Процессы и потоки в CPython
Дальше: Дополнительные материалы

Модуль concurrent.futures

Модуль concurrent.futures

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

Если сравнивать этот модуль с threading или multiprocessing, то у него меньше возможностей. Но зато с concurrent.futures работать проще и интерфейс более понятный.

Модуль concurrent.futures позволяет легко решить задачу запуска нескольких потоков/процессов и получения из них данных.

Модуль предоставляет два класса:

  • ThreadPoolExecutor - для работы с потоками
  • ProcessPoolExecutor - для работы с процессами

Оба класса используют одинаковый интерфейс, поэтому достаточно разобраться с одним и затем просто переключиться на другой при необходимости.

Модуль использует понятие future. - это объект, который представляет отложенное вычисление. Этот объект можно запрашивать о состоянии (завершена работа или нет), можно получать результаты или исключения, которые возникли в процессе работы, по мере возникновения.

При этом нет необходимости создавать их вручную. Эти объекты создаются ThreadPoolExecutor и ProcessPoolExecutor.

Назад: Процессы и потоки в CPython
Дальше: Дополнительные материалы