Какова стоимость выпуска GIL?

Предположим, у меня есть функция расширения на C, которая делает что-то, полностью независимое от интерпретатора Python. Есть ли причины не выпускать GIL?

Например, есть ли причины не писать такой код (помимо таких проблем, как читабельность и избегание микрооптимизации - вещи важные, но не совсем относящиеся к моему вопросу)?

Py_BEGIN_ALLOW_THREADS
    a = 1 + 1;
Py_END_ALLOW_THREADS

Очевидно, что это тривиальный код, где производительность, вероятно, не будет иметь большого значения. Но есть ли какая-нибудь причина не выпускать GIL здесь? Или GIL следует выпускать только для более CPU-интенсивного кода?

8
задан Jason Baker 21 October 2011 в 23:59
поделиться