...PyEval_RestoreThread(_save);これらの関数の動作を説明します。現在のスレッド状態を指すポインタを保護するために使われます。(他のスレッドがすぐさまロックを獲得して、自らのスレッド状態をグローバル変数に保存してしまうかもしれないからです)。逆に、ロックを獲得してスレッド状態を復帰する際には、グローバル変数にスレッド状態ポインタを保存する前にロックを獲得しておかなければなりません。解放することは有益です。自動的にスレッド状態が割り当てられて、上記のコードは正しく動きます。なく、スレッド状態データ構造体もないことに注意する必要があります。獲得し、スレッド状態ポインタを保存することで、スレッドをインタプリタに登録しなければなりません。スレッドが作業を終えたら、スレッド状態ポインタをリセットして、ロックを解放し、最後にスレッド状態データ構造体のメモリを解放しなければなりません。この処理を自動的に行います。グローバルインタプリタ1つだけが存在すると仮定する事に気をつけて下さい。混ぜて使うことはサポートされていません。呼び出した時の動作です。実行したスレッドしか存在しません。これは、別のスレッドに取得されたロックがずっと解放されないことを意味します。問題を解決しています。教える手段がありません。ようなOSの機能を使う必要があります。内部ロックのためにデッドロックが発生するかもしれません。必要なロックのリセットを試みますが、いつでもそれが可能とは限りません。高レベルAPI¶C拡張を書いたりPythonインタプリタを埋め込むときに最も一般的に使われる型や関数は次のとおりです:PyInterpreterState¶このデータ構造体は、協調動作する多数のスレッド間で共有されている状態を表現します。同じインタプリタに属するスレッドはモジュール管理情報やその他いくつかの内部的な情報を共有しています。異なるインタプリタに属するスレッド間では、利用可能なメモリ、開かれているファイルデスクリプタなどといったプロセス状態を除いて、初期状態では何も共有されていません。GILもまた、スレッドがどのインタプリタに属しているかに関わらずすべてのスレッドで共有されています。単一のスレッドの状態を表現する表現するデータ構造体です。公開されているデータメンバです。初期化し、獲得します。いった他のスレッド操作に入るよりも前に呼び出されるようにしておかなければなりません。前に呼び出す必要はありません。二度目に呼び出すと何も行いません。呼び出されるようになり、わざわざ呼び出す必要はもう無くなりました。前に呼び出すことができなくなりました。この関数は、GILを獲得せずに呼び出すことができますので、シングルスレッドで実行している場合にはロック関連のAPI呼び出しを避けるために使うことができます。初期化されるようになりました。よって作成されたものではなかったとしても終了させられます。使うと、この関数を呼び出す前にインタプリタが終了される過程の途中なのか確認でき、望まないスレッドの終了が避けられます。呼び出され、新しい子プロセスが、子プロセス内で実行していないスレッドが持っているロックを持たないようにします。APIの呼び出しが可能となるようにします。呼び出す必要があります。使用することができますが、Release()の前にスレッド状態は復元されていなければなりません。使用することができます。渡してPythonを同じ状態に保たなければなりません。呼び出しで渡してください。コードを実行できます。処理の失敗は致命的なエラーです。よって作成されたものではなかったとしても終了させられます。使うと、この関数を呼び出す前にインタプリタが終了される過程の途中なのか確認でき、望まないスレッドの終了が避けられます。獲得したすべてのリソースを解放します。APIを利用するようにしてください)。PyGILState_GetThisThreadState()¶このスレッドの現在のスレッドの状態を取得します。メインスレッドで自身のスレッド状態に関する呼び出しを全くしないとしても、メインスレッドは常にスレッド状態の情報を持っていることに注意してください。なっている目的は主にヘルパ機能もしくは診断機能のためです。この関数はいつでもどのスレッドからでも呼び出すことができます。これは主にヘルパー/診断用の関数です。この関数は、例えばコールバックのコンテキストやメモリ割り当て機能で有益でしょう。行動を実行することができ、そうでなければ異なるやりかたで振る舞うことができるからです。ソース配布物内の使用例を見てください。マクロと対応させなければなりません。マクロについての詳しい議論は上記を参照してください。マクロと対応していなければなりません。マクロについての詳しい議論は上記を参照してください。