1

複数のプロセス間でデータ構造を共有する必要があるスクリプトを作成しています。現在、単純な変数 (つまり、$var、@arr、%hash) のみを共有する必要がある場合にうまく機能しました。しかし最近では、ハッシュのハッシュなど、より複雑な変数を共有しようとしており、多くの問題に直面しています。IPC::ShareableDBM::Deep、およびforks::sharedを使用してみましたが、ハッシュのハッシュなど、より複雑なデータ構造を共有する際に問題があるようです。私が疑問に思っているのは、私のような状況では、フォークまたはスレッドを使用する方が良いでしょうか? フォーク構文は使いやすいので気に入っていますが、スレッドの方がはるかに単純なときに不要なフープをたくさん飛び越えている場合は、

アップデート

共有とは、個別のプロセスがデータ構造の読み取りと書き込みの両方を行う必要があることを意味します。

Centos5.5でPerl 5.8を実行しています

4

1 に答える 1

2

共有パターンに関する情報がまったく提供されていないため、ワーカー モデル (実際に使用する必要があるモデル) を使用していると仮定します。これは、データがメッセージ キューを介して共有されることを意味します。

もしそうなら、答えは「それは問題ではありません」です。use forks;またはの選択を使用use threads;し、タスク間通信チャネルとしてThread::Queue::Anyを使用します。

于 2012-07-06T20:35:18.470 に答える