Библиотеки
C, которые выполняются как часть программы на Python, могут, как вы предлагаете, выпустить GIL перед выполнением обширных вычислений без необходимости доступа к объектам Python, и это действительно позволит увеличить параллелизм, позволив вводу-выводу продолжить работу вфон.Однако, если библиотека не предназначена для среды Python, она, вероятно, не будет, и даже если бы не было никакой гарантии, что она выпустит GIL.
Если библиотеки не были специально разработаны для Python, они выигралиОтпусти GIL.В этом случае вы можете многого добиться, поместив соответствующие функции в оболочки C, которые управляют GIL.
Если библиотеки не были специально для Python или если GIL не упомянут в их документации,Единственный способ убедиться в этом - изучить исходный код.Ваш код на C может манипулировать GIL с помощью функций, определенных в C API Python .