現在、私は小さなPythonスクリプトを複数のスレッド/コアをサポートするように変換しようとしています。私は数日前からマルチプロセッシングモジュールについて読んできました。私はいつも私のニーズに合わせるよう努力してきましたが、なぜそれがうまくいかないのかわかりません。Python 3でのプールとマルチプロセッシングの問題
Thisはワーキングコードであり、thisはプールワーカーを実装する私のアプローチです。ロックが設定されていないため、最初はあまりにも複雑にしたくないので、既にログに記録するのを無効にしました。
まだ動作しません。それはどんな種類のエラーメッセージも出力しません。それを実行した後、ウェルカムメッセージが表示された後、ただ実行し続けますが、変換されたファイルあたり2行(変換前+変換後)の任意の出力は出力されません。
感謝を!私はこれが一種の過酷なことだと知っていますが、.mkvの複数のギグを変換するときに時間を節約するかもしれません。とにかく、私はあなたのヒントを正しく得て、コールの代わりにPopenを使用して、引数をリストとして使用しようとしました。それでも、[これ](http://pastebin.com/J9bssM1x)は、呼び出しのあるバージョンと同じ方法で終了し、ウェルカムメッセージの後にハングアップし、何も出力しないか、終了しません。 –
いいえ、Pythonのサブプロセスは、os-subprocessesが終了するのを待っているだけなので、いつでもあなたを救うことはできません。 – mata
申し訳ありませんが、私はちょっと気分が悪いと感じています。あまり理解できていません...あなたはos-subprocessesをどういう意味ですか? Afaik mkvmerge/mkvtoolnixはシングルスレッドのユーティリティであるため、一度に1つのプロセスにする必要があります。そして、私の意見では少なくとも、pythonのサブプロセスは、各サブプロセスのmkvmergeのプロセスを生成し、cpu_cores()によって決定される並列プロセスの最大数を生成する必要があります。次に、1つのサブプロセスが終了した場合、残りの/がある場合は、次のジョブ/ファイルを取得する必要があります。しかし、私はここで誤解がたくさんあるように感じます。 :/ –