Делает 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 потока вызывающей стороны или удерживается вызывающим потоком?