1

ビークルバスシステムの分析ソフトウェアのモジュールでPythonを使用しようとしています。モジュールwitchの複数のインスタンスが独立して動作する可能性があるため、このためにPythonをスレッドセーフな方法で埋め込む必要があります。ミューテックスを使用してPythonへのすべてのアクセスを保護し、スレッドごとに一意の(python)モジュールを作成できます。明らかにこれが最も簡単な方法ですが、複数のコアにまたがって拡張できないという代償が伴います。または、モジュールを変更して、インターンがPythonを使用し、共有メモリを介してそれらに接続する新しいプロセスを生成することもできます。これにより、パフォーマンスが低下し、実装に時間がかかりますが、拡張性は高くなります。

私の質問:魔女の方が理にかなっていると思いますか?Pythonスレッドを安全に、または複数のコアに拡張する方法で埋め込む他の方法はありますか?

よろしくモリッツ

編集:私はCPythonを使用しています

4

2 に答える 2

3

CPU バウンドの場合、Python は multiprocessing ライブラリを使用して複数のコアにのみスケーリングできます。ただし、I/O バウンドの場合は通常、スレッド化で十分です。

簡単なスレッド セーフが必要な場合は、すべてのメッセージ パッシングに Queue を使用します。

于 2010-10-15T14:25:00.467 に答える
0

私の質問のフォローアップ:私は、インターンがPythonを使用するプロセスを使用して実装を進めました。マルチプロセッシングライブラリが役に立たない理由についての良いテキストはここにあります:http: //pkaudio.blogspot.com/2010/04/whey-multiprocessing-doesnt-always-work.html それは私自身によって書かれたものではありませんが、その男は私が持っているのと同じ問題。私を助けてくれたみんなに感謝しています。

于 2010-10-22T08:37:07.997 に答える