6

プロセス間で「シングルトニック」クラスの同じインスタンスを共有するようにコーディングするにはどうすればよいですか?

4

5 に答える 5

7

最善の方法は、1 つの特定のプロセスをそのインスタンスの所有者として指定し、そのインスタンス専用にすることです。そのインスタンスへのアクセスを必要とする他のプロセスは、キュー (マルチプロセッシング モジュールによって提供される) またはメッセージ パッシング用の他の IPC メカニズムを介して所有プロセスにメッセージを送信することによってインスタンスを取得し、同様のメカニズムを介して応答を取得します。

于 2009-07-10T14:37:28.603 に答える
5

プロセスの要点は、異なるアドレス空間を持つことです。プロセス間で情報を共有したい場合は、何らかのプロセス間通信手段を使用する必要があります。

于 2009-07-10T14:35:52.337 に答える
2

プロセス間でインスタンスを共有できるとは思いませんが、インスタンスに共有メモリにアクセスさせることはできます: http://docs.python.org/library/multiprocessing.html#sharing-state-between-processes状態を制御するそれが本当にやりたいことなら。

ただし、他の回答で述べたように、キューを使用して目的を達成する方が簡単な場合があります。

于 2009-07-10T14:44:14.613 に答える
2

Python 2.6 では、multiprocessingモジュールにはプロセス間で状態を共有するValueために使用されるオブジェクトがあります。この方法で状態を共有する方法のアイデアを提供するコードサンプルがあり、シングルトンクラスを作成するときにこのアプローチを使用できます。

于 2009-07-10T14:47:41.520 に答える