• ベストアンサー

Mutexでのexeの重複実行

Mutexでのexeの重複実行 実行プログラムにMutexを使用して重複起動を防止しました。 目的は同じプログラムをn個実行はするが、同時実行は許可したくないためです。 この場合exeはいくつでも起動できるのでしょうか? またexeの実行順序はどうなるのでしょうか?(起動した順なのか、Mutexの解放を検知した順なのか) 本来の目的とは違うのかもしれませんが、このような使用もありかな?と考えました。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>重複起動を防止 普通に考えるとMutexを取得できない場合はプロセスを 終了するように作っていると考えます。そうでないなら、 プロセスは何個でも起動します。よって、「重複起動を 防止している」とは言えませんね。 >同時実行は許可したくない Mutexを取得できるまでWaitFor~しているなら、同時期に 活動できているプロセスは1個だけです。但し、先に述べた ように多重起動を防御していないならプロセス自体は何個 でも起動します。 Mutexを獲得したプロセスがMutexを解放したことにより、 次にMutexを獲得できたプロセスが活動状態になります。 ただ、待ち合わせ中のどのプロセスが次のMutexを受け取れる かは分かりません。恐らく、待ち行列に登録した順だと思い ますが、明確な仕様は分かりません。

papope
質問者

お礼

ご回答いただきまして、ありがとうございます。 プログラム自体はMutexを取得できない場合には待つように作成しております。 待ち行列に登録した順だと楽なのですが・・・ まぁ、どのような順番で実行されても、大丈夫なように作成することも可能 なので、考えて見ます。(どのような順番で実行しても、起動した順のように データを処理することが可能という意味です) ありがとうごじざいます。

関連するQ&A