問題タブ [multiprocess]
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/Twisted - 特定のソケット オブジェクトに送信しますか?
ノードに「マネージャー」プロセスがあり、いくつかのワーカー プロセスがあります。マネージャーは、クライアントへのすべての接続を保持する実際のサーバーです。マネージャーはすべての着信パケットを受け入れてキューに入れ、次にワーカー プロセスがパケットをキューから取り出して処理し、結果を生成します。彼らは結果をマネージャーに送り返します (マネージャーによって読み取られる別のキューにそれらを入れることによって) が、ここで行き詰まります: 特定のソケットに結果を送信するにはどうすればよいですか? 単一のプロセスでパケットの処理を処理する場合、パケットを受信すると、「トランスポート」オブジェクトをコンテキスト内で取得するだけで応答できるため、簡単です。しかし、私が使用している方法でこれを行うにはどうすればよいですか?
python - マルチプロセスまたはPythonでのスレッド化?
データのコレクションを取得する Python アプリケーションがあり、そのコレクション内のデータごとにタスクを実行します。タスクには遅延が伴うため、完了するまでに時間がかかります。この遅延のため、各データが後でタスクを実行するのではなく、すべてが並行して実行されるようにします。マルチプロセスを使用する必要がありますか? またはこの操作のスレッド?
スレッドを使用しようとしましたが、問題が発生しました。多くの場合、一部のタスクが実際には起動しませんでした。
architecture - Google Chromeは、単一のアプリケーションのように見えながら、タブを個別のプロセスに分離するにはどうすればよいですか?
GoogleChromeは各タブを別々のプロセスで実行すると言われています。したがって、1つのタブでクラッシュしても、他のタブで問題が発生することはありません。
AFAIK、マルチプロセスは主にGUIのないプログラムで使用されます。複数のGUIプロセスを1つのプロセスに組み込むことができる手法を読んだことはありません。
Chromeはどのようにそれを行いますか?
この質問をしているのは、複数のカメラメーカーのビデオデコードSDKを使用するCCTVソフトウェアを設計しているためです。その中には、安定性にほど遠いものもあります。そのため、これらのSDKをさまざまなプロセスで実行することを好みます。これはChromeに似ていると思いました。
python - Pythonスレッド/フォーク?
私は3つのことを同時に行う必要があるPythonスクリプトを作成しています。私がGILについて聞いたことと同じように、これを達成するための良い方法は何ですか?私はもうスレッドを使うことにそれほど傾いていません。
スクリプトが実行する必要のある2つのことは非常にアクティブであり、実行する作業がたくさんあります。次に、ユーザーが要求したときに、ソケットを介してユーザーに報告する3番目のことを実行する必要があります(したがって、小さなもののようになります)サーバー)他の2つのプロセスのステータスについて。
今私の質問は、これを達成するための良い方法は何でしょうか?3つの異なるスクリプトを使用したくありません。また、GILがスレッドを使用しているため、パフォーマンスがあまり向上せず、状況が悪化すると思います。
CのようにPython用のfork()があるので、私のスクリプトから、ジョブを実行するfork 2プロセスと、ユーザーに報告するメインプロセスからですか?そして、フォークされたプロセスからメインプロセスとどのように通信できますか?
LE ::より正確には、1threadはimapサーバーからメールを取得してデータベースに保存する必要があり、別のスレッドは送信する必要のあるdbからメッセージを取得して送信する必要があり、メインスレッドは小さなhttpサーバーである必要があります。 1つのURLを受け入れるだけで、これら2つのスレッドのステータスがjson形式で表示されます。では、スレッドは大丈夫ですか?作業は同時に行われますか、それともギルが原因でパフォーマンスの問題が発生しますか?
python - urllib2 によってブロックされた Python プロセス
ダウンロードする着信 URL のキューを読み取るプロセスをセットアップしましたが、urllib2 が接続を開くとシステムがハングします。
別のモジュールから URL を追加し、必要なときにプロセスを停止して、プロセスが閉じるのを待つことができます。
問題は、urlopen ("response = urllib2.urlopen(request)") を使用すると、すべてブロックされたままになることです。
download() 関数を呼び出したり、Process を使用せずにスレッドのみを使用したりする場合は問題ありません。
c - Berkeley DB コンカレント データ ストア アプリケーションがハングするのはなぜですか?
読み取り用にコンカレント データ ストア (CDB) データベースを開こうとすると、アプリケーションがハングします。
データベース環境は、別のプロセスがデータベースを書き込み用に開いていると認識していると思われます。ただし、データベースにアクセスするすべてのアプリケーションは、私が作成したインターフェイス ライブラリを介してデータベースにアクセスするため、これは当てはまりません。これは、atexit() システム コールを介して終了関数を登録し、DB ハンドルと DB_ENV ハンドルの両方が適切に閉じられるようにします --以前に実行されたすべてのアプリケーションが正常に終了しました。
インターフェイス ライブラリは、次のようにデータベースを開きます。
このコードではエラーは発生しません。
インターフェイス ライブラリは、インターフェイス ライブラリを使用するプロセスが終了したときに実行される次のコードも登録します。
おっしゃる通り、以前に実行したインタフェース ライブラリを使用するプロセスはすべて正常に終了しました。このようなプロセスはすべてシングルスレッドです。
次のプラットフォームで Berkeley DB のバージョン 4.8.24.NC を使用しています。
何か案は?
log4net - .net、ユーザー モード、およびドライバーからの ETW 追跡
一部が.net、c++ユーザーモード、およびC++ドライバーにあるアプリケーションがあります。アプリケーションは、オンデマンドで実行されるいくつかの実行可能ファイルに分割され、LPC (プロセスは異なるセッション (winlogon) で実行されます) を使用して相互に通信します。
現在、.net および c++ ユーザーモードが LPC メッセージを送信することによって通信する、自作のログ サービスがあります。ドライバーは DbgPrint を使用しますが、コードの実行が 30% 遅くなるため、常に有効になっているとは限りません (大量のログが記録されています)。
すべてのログを 1 か所に書き込み、できればロガーを自分で作成したくありません (log4cpp と log4net が大好きです)。要件は、すべての実行可能ファイルとドライバーを 1 つの場所に書き込み、オーバーヘッドを最小限に抑えることです。
私はETWが道のりであることを読みましたが、log4cppやlog4netのようにそれを使用するすでに書かれたロガーを見つけることができませんでした.
基本的に私の質問は、私が使用できるlog4cppとlog4netのETWアペンダーがすでに実装されているかどうか知っていますか?
php - PHPでプロセスの同時実行性を制御する
X分ごとに、いくつかのWebサイトで画像が変更されているかどうかを確認し、ダウンロードする簡単なアプリをプログラムしました。それは非常に簡単です:画像ヘッダーをダウンロードし、いくつかのCRCチェックを行い、ファイルをダウンロードし、MySQLデータベースに各画像に関するデータを保存し、次のアイテムを処理します...
このプロセスは、完了するまでに約1分かかります。
問題は、サーバーがこのプロセスを実行している間、MySQLを必要としないページであっても、Webサイトのどのページにもアクセスできないことに気づいたことです。
なぜそれが起こっているのか分かりませんし、それを修正する方法もわかりません。おそらく、より高度なPHPプログラマーが私を助けてくれるでしょう。
c++ - マルチスレッドとマルチプロセスのパフォーマンスの違い
数年前、Windows環境で、CPU計算集約型+メモリアクセス集約型+ I / Oアクセス集約型のアプリケーションの複数のインスタンスを実行することにより、いくつかのテストを行いました。私は2つのバージョンを開発しました。1つはマルチプロセッシングで実行され、もう1つはマルチスレッドで実行されます。
マルチプロセッシングの方がパフォーマンスがはるかに優れていることがわかりました。私はどこかで読んだ(しかし、私はその場所を思い出せない)。
その理由は、マルチスレッドでは、単一のメモリパイプラインとI / Oパイプラインを「争っている」ため、マルチプロセッシングに比べてパフォーマンスが低下するということです。
しかし、その記事はもう見つかりません。今日まで、以下がまだ当てはまるのだろうかと思っていました。
Windowsでは、アルゴリズムコードをマルチプロセッシングで実行すると、マルチスレッドよりもパフォーマンスが向上する可能性が高くなります。
python - Pythonマルチスレッド/マルチプロセスコード
以下のコードでは、URLからのフェッチにマルチスレッドまたはマルチプロセスを使用することを検討しています。プールが理想的だと思います。誰かが解決策を提案するのを手伝ってもらえますか。
アイデア:スレッド/プロセスをプールし、データを収集します...私の好みはスレッドよりもプロセスですが、確かではありません。