Делает concurrent.futures.Future.results() освобождает GIL вызывающего потока [Python 2.7]

При написании GRPC-сервера на python я хотел использовать несколько процессов, доступных на моей машине, для выполнения некоторых вычислительных работ. Для интенсивных вычислений я планирую использовать concurrent.futures.ProcessPoolExecutor в python.

Идея состоит в том, что интенсивная работа по вычислениям будет передана ProcessPoolExecutor, и отдельный процесс выполнит эту работу.

Code Sample
future = poolExecutor.submit(cpu_intensive_work, args)
result = future.result()

Мой вопрос связан со 2-й строкой кода. Первая строка кода отправит cpu_intensive_work в очередь. Эта работа будет выбрана и выполнена отдельным процессом из пула. Во второй строке кода поток вызывающей стороны ожидает ответа. В течение этого времени ожидания освобождается ли блокировка GIL потока вызывающей стороны или удерживается вызывающим потоком?

0 ответов

Другие вопросы по тегам