最初の質問ですので優しくしてください。マルチプロセッシング時にPythonの名前付きパイプが死ぬ
私はpythonを使用しています。 私はパイプからとの読み出し/書き込み可能なグローバルとして
PIPE = open(r'\\.\pipe\NamedPipe','rb+',0)
とC++の窓のプログラムに名前付きパイプを作成します。
def pipe_writer():
PIPE.write(some_stuff)
def pipe_reader():
data = struct.unpack("byte-type",PIPE.read(number_of_bytes),0)
pipe_writer()
pipe_reader()
これはパイプからデータを収集し、いくつかの機能と完全なデータを処理し、次々に機能する細かいあります。
残念ながら、シリアル化された方法でいくつかの関数を使ってパイプからデータをプルする際に、データを少しずつ処理する必要があります。
私はマルチプロセスモジュールを使用するので、データをキューに入れるだけで仕事ができると思っていました。
私はマルチしようとしたとき、私はパイプを作成し、それを開いたときにした後、一度データを送信することができる午前:私は、その後のプロセスとして.start()
機能を試してみて、私が手パイプから読み込むとき
if __name__ == '__main__':
PIPE = open(r'\\.\pipe\NamedPipe','rb+',0)
PIPE.write(some_stuff)
パイプが存在しないか、間違ったモードで開いているというエラーです。実際には関数上でProcess()を使わずに読み書きするとうまく動作するわけではありません。たとえそれが一度だけであっても。
提案がありますか?また、スレッド処理がうまくいかず、マルチプロセスを使う必要があると思います...おそらく... GILとスローダウンのためです。
'python'または' C++ '?それは私には純粋な 'python'と思われます。残念なことに、 'C++'タグでは、 'python'専門家があなたの質問に答えることを恥ずかしく思うかもしれません。 – alvits
パイプはC++プログラムから来ていますが、私は100%のPythonを使っています。指定しないと申し訳ありませんが、fisrtの質問 –
どのようにパイプを開きますか? 2つの文字列と1つのintを持つ3タプルを作成します... –