1
cythonでnogilを使ってmallocでメモリを割り当てても安全ですか? また、マルチスレッドのプログラムをnogilで実行している場合でも、ポインタを渡すことは安全ですか?Mallocはnogilと一緒に使うのが安全ですか?
cythonでnogilを使ってmallocでメモリを割り当てても安全ですか? また、マルチスレッドのプログラムをnogilで実行している場合でも、ポインタを渡すことは安全ですか?Mallocはnogilと一緒に使うのが安全ですか?
CPythonsメモリ管理がthread-safeではないため、GILが配置されています。結果として、がでPythonオブジェクトとやりとりしない場合、つまりPythonによって処理されるメモリの場合にnogil
を使用できます。
これはドキュメントfor releasing the GILに記載されている:文の本体に
コードは、どのような方法でPythonオブジェクトを操作してはならない、と最初GILを再取得することなく、Pythonオブジェクトを操作するものを呼び出してはいけません。 Cythonは現在これをチェックしていません。だから、
、malloc
を使用して、ポインタを渡すとC
に合法である何かを行うと、長い何Pythonのオブジェクトが関与されていない限り完全に安全です。
もちろん。あなたが完了したらあなたの記憶を解放し、適切なときにロックを使用する限り、あなたは金色です。 –