問題タブ [mutex]
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.
vb6 - VisualBasicでミューテックスを使用する方法
ライブラリをインポートしましたkernel32
。そのため、createMutex
関数を使用できますが、さまざまなパラメーターと戻り値がよくわかりません。
これは古典的なVisualBasicであり、Visual Basic.NETではありませんが、おそらくどちらの言語でも回答の形で作業できます。
c# - 単一インスタンスの WPF アプリケーションを作成する正しい方法は何ですか?
( Windows フォームやコンソールではなく) .NET で C# と WPF を使用して、単一のインスタンスとしてのみ実行できるアプリケーションを作成する正しい方法は何ですか?
私はそれがミューテックスと呼ばれる神話的なものと関係があることを知っています.ミューテックスが何であるかをわざわざ止めて説明する人を見つけることはめったにありません.
コードは、ユーザーが 2 番目のインスタンスを開始しようとしたことを既に実行中のインスタンスに通知する必要もあり、存在する場合はコマンドライン引数も渡す必要があります。
multithreading - ミューテックスとは
ミューテックスは、マルチスレッドの問題を解決するために頻繁に使用されるプログラミングの概念です。コミュニティへの私の質問:
ミューテックスとは何ですか?どのように使用しますか?
c# - これはミューテックスの適切な使用ですか?
プログラムの複数のインスタンスを同時に実行している可能性がある状況がありますが、これらのインスタンスの複数で一度に 1 つの特定の関数だけを実行しないことが重要です。
これは、ミューテックスを使用してこれが起こらないようにする適切な方法ですか?
operating-system - バイナリセマフォとミューテックスの違い
バイナリセマフォとミューテックスに違いはありますか、それとも本質的に同じですか?
xml - Delphi を使用して、EXE の複数のインスタンスから XML ファイルへの同時入出力アクセスを管理する方法。
Delphi で記述されたコマンド ライン ツールがあります。このツールは、XML ファイルにノードを挿入してすぐに終了します。ツールの複数のインスタンスを同時に実行し、同じ XML にノードを挿入できるようにする必要があります。
この目的を達成するために、単純なファイル「ミューテックス」を導入しました。このツールは、XML に書き込む前に 1 つの一時ファイルを作成し、書き終わったら一時ファイルを削除します。そのため、別のインスタンスが実行されると、この一時ファイルの存在がチェックされ、削除されるまで待機します。次に、一時ファイルを再度作成し、XML に書き込み、一時ファイルを削除します。
問題は、これが正常に機能するのは、2 ~ 3 個のインスタンスが同時に XML ファイルに書き込もうとした場合だけです。さらにインスタンスがある場合、それらのいくつかは永久に待機し、ノードを XML に追加することはありません。
多数のインスタンスを同時に実行して XML に書き込んで動作させるためのより良い方法はありますか?
mutex - VxWorks 反転セーフ ミューテックスを使用する場合、なぜ SEM_PRIORITY_Q が必要なのですか?
VxWorks で、SEM_INVERSION_SAFE オプションを使用してミューテックスを作成し、優先順位の逆転の問題を回避しています。
マニュアルには、SEM_PRIORITY_Q オプションも使用する必要があると記載されています。何故ですか?
c++ - C++ スレッド、共有データ
2 つのスレッドが実行されているアプリケーションがあります...一方のスレッドからグローバル変数を変更すると、もう一方のスレッドがこの変更に気付くという保証はありますか? 同期または相互排除システムを導入していません...しかし、このコードは常に機能するはずです(dataUpdatedという名前のグローバルブールを想像してください):
スレッド 1:
スレッド 2:
gcc のようなコンパイラは、コンパイル時の値のみを考慮して、グローバル値をチェックしない方法でこのコードを最適化しますか (同じスレッドで変更されることはないため)。
PS: これはゲームのようなアプリケーションのためのものなので、値が書き込まれている間に読み取りが行われるかどうかは実際には問題ではありません...重要なのは、変更が他のスレッドによって通知されることだけです。
synchronization - テストアンドセットは何に使用されますか?
テストアンドセットのウィキペディアのエントリを読んだ後も、「テストアンドセットは何に使用されるのか」という質問が残ります。
(ウィキペディアで説明されているように)Mutexを実装するためにそれを使用できることを理解していますが、他にどのような用途がありますか?
perl - ワーカー MPM の下の mod_perl でのプロセス内調整
mod_perl で簡単なタイムゾーン計算を行う必要があります。DateTime はオプションではありません。私がしなければならないことは、$ENV{TZ} を設定し、localtime と POSIX::mktime を使用することで簡単に達成できますが、スレッド化された MPM の下では、一度に 1 つのスレッドだけが環境をいじることを確認する必要があります。(localtimeなどの他の用途については気にしません。)
環境へのアクセスをシリアル化する (非マーシャリングの意味で) ミューテックスまたはその他のロック戦略を使用するにはどうすればよいですか? 私が見たドキュメントでは、この用途のためだけにミューテックスを作成する方法が十分に説明されていません。一般的にミューテックスを作成する方法について、私が理解していないことがあるかもしれません。
更新: はい、Env::C を使用して TZ を設定する必要があることを認識しています。