問題タブ [multiprocessing-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python でマネージャーを使用して読み取りと書き込みを行うにはどうすればよいですか?
ばかげた質問で申し訳ありませんが、Python でマネージャーがどのように機能するかを理解できません。
すべてのプロセスで共有される辞書を含むマネージャがあるとします。一度に 1 つのプロセスだけがディクショナリに書き込み、他の多くのプロセスがディクショナリから読み取ります。
- これは、同期プリミティブなしで同時に発生する可能性がありますか?それとも、読み取り/書き込みが同時に発生すると何かが壊れますか?
- 一度に複数のプロセスがディクショナリに書き込みたい場合はどうすればよいですか?それは許可されていますか?
- さらに、マネージャーは各読み取りおよび書き込みトランザクションをキューのような方法で一度に 1 つずつ処理しますか、それとも一度にすべて処理しますか?
https://docs.python.org/3/library/multiprocessing.html#sharing-state-between-processes
python - Python マルチプロセッシングは他のモジュールの関数を使用できません
更新: Spyder を 5.0.5 に更新した後、動作しています。みんな、ありがとう!
マルチプロセッシングを使用してループを高速化しようとしています。以下のコードは、10000 個のランダムなベクトルを生成することを目的としています。
私のアイデアは、タスクを 5 つのプロセスに分割し、result
. ただし、コードを実行すると空のリストが返されました。
result = add_one(result)
しかし、関数で削除するrandomize_data
と、コードは完全に実行されます。したがって、エラーは、マルチプロセッシング内で他のモジュール ( ) の関数を使用したことが原因である必要がありますTesting.test
。
からのadd_one
関数は次のTesting.test
とおりです。
プロセス内で他のモジュールの関数を使用するにはどうすればよいですか? ありがとうございました。