問題タブ [process]

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.

0 投票する
1 に答える
1955 参照

.net - ファイナライザースレッドの範囲は何ですか?アプリケーションドメインごとまたはプロセスごとですか?

私のすべての読みに基づいて、すべてのファイナライザーを呼び出すための1つのGCスレッドが必要です。ここで問題となるのは、この「1つの」スレッドの範囲です。プロセスごとまたはアプリケーションドメインごとです。ドメインの全体的な目的は、1つのプロセススペースで「独立した」異なるアプリケーションを分離して作成することです。

私はここを読んだ:

ファイナライザーで未処理の例外が発生した場合、CLRの実行スレッドは例外を飲み込み、ファイナライザーを正常に完了したかのように扱い、侵害可能なキューから削除して次のエントリに移動します。

ただし、もっと深刻なのは、ファイナライザーが何らかの理由で終了しない場合、たとえば、ファイナライザーがブロックされ、決して発生しない状態を待機している場合にどうなるかです。この場合、ファイナライザスレッドがハングするため、ファイナライズ可能なオブジェクトがガベージコレクションされることはありません。この状況を十分に認識し、ファイナライザーで管理されていないリソースを解放するための最も単純なコードの記述に固執する必要があります。

もう1つの考慮事項は、アプリケーションのシャットダウン中に何が起こるかです。プログラムがシャットダウンすると、ガベージコレクターは、ファイナライズ可能なすべてのオブジェクトのファイナライザーを呼び出そうとしますが、特定の制限があります。

  • ファイナライズ可能なオブジェクトは、シャットダウン中に上位のヒープ世代にプロモートされません。

  • 個々のファイナライザーの実行時間は最大2秒です。それより長くかかる場合、それは殺されます。

  • すべてのファイナライザーが実行されるまでに最大40秒かかります。ファイナライザーがまだ実行中の場合、またはこの時点で保留中の場合、プロセス全体が突然強制終了されます。

「アプリケーション」、「プロセス」、「アプリケーションドメイン」という用語の誤用が多すぎる投稿(および公式ドキュメント)-通常、アプリケーションは単一のプロセスで単一のアプリケーションドメインで実行されるため、それらのほとんどは同等であると想定しています。 。この誤用により、これらのドキュメントはすべて読みにくくなり、役に立たなくなります。

したがって、私の質問では、複数のアプリケーションが、それぞれが単一のプロセスの個別のアプリケーションドメインで実行されることを前提としています。

これらのアプリケーションはすべて同じGCスレッドとファイナライザースレッドを共有していますか?上記の記事で説明されている問題(ファイナライザースレッドのハング)は、そのプロセスのすべてのアプリケーションに影響しますか?はいの場合-ファイナライザースレッドを検出してThread.Abortを送信するなどの回避策(悪いアプリケーションを使用しないこと以外)はありますか?

上記のすべては、私が同様の問題にぶつかったためです。私のアプリケーションは、サードパーティソフトウェア(Outlook)へのアドインとして別のアプリケーションドメインで実行されます。さまざまな理由により、COM参照を完全に解放するためにGC.CollectとGC.WaitForPendingFinalizersを呼び出す必要があります(通常の相互運用ルーチンはOffice / Outlookには不十分です)。特定の他のサードパーティのアドインが実行されていると、GC.WaitForPendingFinalizersが永久にハングします。 、そのため、そのサードパーティに「悪い」ファイナライザーが追加されているのではないかと思います。私はその追加(クライアントの要件)を置き換える/削除することを制御できないので、それらを共存させる方法を自分で理解する必要があります。

0 投票する
2 に答える
1268 参照

php - 子に親のファイル記述子を継承させずにPHPフォーク?

バックティック演算子を使用してシェル コマンドを実行しようとしていますが、子プロセスが php の開いているファイル記述子を継承するという事実が問題です。これが起こらないようにする方法はありますか?

私はPHP 5.1.2を実行しています

0 投票する
4 に答える
1914 参照

methods - HOMEメソッドとは?

クライアントから、HOME の開発方法について何か知っているかどうか尋ねられました。私は、ウィキペディアと頭字語ファインダーと一緒に、完全な空白を描きました。

HOMEと呼ばれる開発方法について聞いたことがある人はいますか?

0 投票する
6 に答える
25689 参照

synchronization - 2 つのプロセスを同期するにはどうすればよいですか?

同じワークステーション上の 2 つのアプリケーション (プロセス) から使用したい単一の HW インターフェイスがあります。HW は 1 回の初期化呼び出しを必要とし、いずれかのアプリが (同じライブラリ内の) 同じ関数を使用して、HW で多くのトランザクションを実行します。

したがって、各アプリは次のように動作する必要があります。

2 つのアプリケーション間で共有されるロックおよび参照カウント呼び出しで使用できるメカニズムは何ですか? 名前付きパイプ、つまり mkfifo() を考えています。

0 投票する
3 に答える
396 参照

c++ - シングルスレッドの 2 つのプロセス

2 つの C++ プロセス (A と B) があり、Windows で実行され、一方が他方を起動します。それらの実行を効果的にシングルスレッドにしたいと思います。例えば:

  1. プロセスAを開始
  2. A が B を作成する
  3. A サスペンド
  4. Bはいくつかの固定された一連の操作を実行します
  5. B が一時停止し、A が再開されます
  6. A はいくつかの固定された一連の操作を実行します
  7. Aが一時停止、Bが再開
  8. (4 ~ 7 を繰り返します)

この種の動作を実装するのに最適な Windows 同期および IPC サービスはどれですか?

0 投票する
8 に答える
4794 参照

process - CMMI とスクラムをどのようにブレンドするか?

私は CMMI レベル 5 の認定を受けているショップで働いています。この認定は、特定の顧客や契約にアクセスできるため、重要です。スクラムと CMMI を融合させる方法を検討しています。スクラムと CMMI-3 の混合に関する情報をいくつか見つけましたが、そのかなりの部分は「手の込んだ」ものであり、厳しい精査に耐えられません。特に、組織の KPA は難しいようです。

2 つのプロセスを混ぜ合わせた経験 (良い点と悪い点) はありますか?

0 投票する
2 に答える
2503 参照

c# - アクセスが拒否され、Windows ユーザーの一時フォルダーでアーカイブを抽出しようとしました

Windows ユーザーの一時ディレクトリ (C:\Documents and Settings\User\Local Settings\Temp )、私の c# アプリで Process を使用します。

.NETのprcoessオブジェクトを掘り下げると、エラーコード5のwin32Exceptionが表示されるので、「アクセスが拒否されました」が原因でプロセスがエラーを返すと思います。

他の場所で同じことをすることは以前はうまくいったので、おそらくそれは私がすべきではないことだと思いますか? (%TEMP% でファイルを使用するプロセスを実行しています) おそらく何らかの方法でセキュリティを渡す必要がありますか?

0 投票する
4 に答える
2383 参照

c# - pConsole.StartInfo.RedirectStandardOutput および pConsole.Exited イベント (c#)

(新しいプロセスで)「コンソール」アプリケーションを実行し、出力を解析するGUIアプリケーションがあります。出力をリダイレクトするには、pConsole.StartInfo.RedirectStandardOutput を true に設定します。イベント pConsole.Exited にも登録しています。

問題は、Exited イベント ハンドラで Thread.Sleep() を使用して最後のデータを取得する必要があることです。

私の Exited イベント ハンドラーは次のようになります。

Exited イベントは、最後の pConsole_DataAvailableEvent の前に実行されるようです。誰がどのように/なぜこれが起こっているのか知っていますか?

また、ミューテックス/ロックを使用して、次のコンソール アプリケーションの実行を開始する前に、Exited イベントが終了していることを確認します。

0 投票する
13 に答える
267457 参照

c# - プロセスが実行されているかどうかを知るにはどうすればよいですか?

への参照を取得したSystem.Diagnostics.Process場合、プロセスが現在実行中かどうかを知るにはどうすればよいですか?

0 投票する
5 に答える
2063 参照

php - ハングした php のデバッグ

時々ハングする PHP Web アプリケーションがあります。ページに移動すると、最大実行数が 210 であっても、何時間もロードしようとしてそこに座っているだけです。これは、プロキシの背後で curl を使用してダウンロードするアプリケーションです。エラー報告はすべてに設定されていますが、ページが空白でハングしているため問題ありません。

ハングした PHP プロセスのデバッグで何も見つかりません。