ネイティブ Java 開発者として、慣れ親しんだ状況に到達したと思います。
PyDev を使用し、Windows 7 64 ビットで Eclipse から実行するマルチスレッド Python 2.7 アプリケーションを開発しています。これは wxPython を使用するためマルチスレッド化されており、コールバックごとに 1 つのスレッドで GUI メイン スレッドと重い作業スレッド (および私または私にはいくつかの重い作業があります) を使用します。
appcrash メッセージとともにポップアップ0xc00000fd
エラーが発生するところまで来ました。python27.dll
これは、スレッド内の関数が値を返すときに発生します。コールバックが処理するデータの量を減らすと、コードの一部が正常に機能するので、スタックに大量のデータがあり、再帰がどこにも問題を起こすことはないと確信しています。
スレッドを作成する前にスレッドを呼び出しstack_size
て、使用可能なスペースを増やすことができます。これは、どのくらいのスペースがそれを満たすかを把握する場合、しばらくの間は機能する可能性があります。スレッドは、今後の作業を減らすのではなく、より多くの作業を行う必要があるため、これは応急処置のように思えます。
Python はヒープ メモリを使用してスタックを作成したので、これは Python では問題にならないのではないでしょうか? 本当の犯罪者である私の多くのサードパーティ API の 1 つですか? では、C にあるような低レベルのメモリ作成の意思決定能力がなければ、どうすればこれをスタックからヒープ メモリに移すことができるでしょうか?