NumPy 配列データへのアクセスには Python インタープリターへの呼び出しが必要ないため、C 拡張機能は GIL のリリース後にこれらの配列を操作できるようです。たとえば、このスレッドで。
組み込みの Python 型 bytearray はBuffer Protocolをサポートしており、そのメンバーの 1 つは
ボイド*buf
バッファー フィールドによって記述された論理構造の先頭へのポインター。[...] 連続した配列の場合、値はメモリ ブロックの先頭を指します。
私の質問は、C 拡張機能は、GIL (Py_BEGIN_ALLOW_THREADS) を解放した後、このbufを操作できますか? それとも、実行中に bytearray とその buf が移動される可能性があるため、Python ガベージ コレクターの性質上、これが禁止されているのでしょうか?