問題タブ [mutual-exclusion]
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.
php - ファイルに対する PHP の相互排除 / MySQL で perl を使用してファイルからステートメントを読み取り、実行する
だから私は、PHPがファイルの読み書きである種の相互排除をどのように/もしているのだろうかと思っていました。
これを使用する予定の方法は次のとおりです。
私が使用しているサイトは、サーバーを離れる必要がある支払いサービスを利用しているため、フォームの送信を処理するのが難しく、支払いサービスから戻るまでフォームがデータベースに送信されません。情報は支払いサービスを通過し、反対側で逆流する可能性があります。ただし、渡せる最低限の情報はあります。
解決策の私の考え:
登録が支払いサービスに渡される前に、sql ステートメントを処理してファイルに書き込みます。ステートメントの各グループは、トークンで区切られた登録を参照します。
戻ったら、支払いサービスを通じて送信した情報に基づいてエントリを見つけ、ステートメントを実行して、ファイルから登録ブロックを削除します。
質問を言い換えると:
-問題は、このシナリオでは、ファイルの相互排除が必要になるかどうかです。そうであれば、どうすれば達成できますか? これは複数の言語からロックできますか? (支払いサービスでは、cgi / perl スクリプトに戻る必要がありますが、実際に処理する php スクリプトを含めることもできます)
- SQL ステートメントを実行して実行するにはどうすればよいですか (できれば perl で)。
-私の解決策は良いもののように見えますか?
ありがとう、
トラヴィス
ruby-on-rails-3 - いくつかのクライアントリクエストの中でのRailsAPIのMutex
RailsAPIでの相互排除の問題に直面しています。データベースに、イベントに参加する人の数を含むEventオブジェクトがあります。
イベントに人を追加する私のEventメソッドを考えてみましょう:
ここで、クライアントAとBがイベントEに参加したいとします。Railsは2つのリクエストを受け取り、add_personメソッドを並行して呼び出します。最後に、イベントEの人数を2人ではなく、1人増やすことができます。
これが私がしたいことです:
add_person
同じオブジェクトでメソッドをキューに入れたいだけです。
これを行う方法はありますか?
mutex - Peterson-2 相互アルゴリズム
ピーターソンの 2 プロセス アルゴリズムの競合のない複雑さは 4 です (エントリ コードで共有レジスタ メモリへの 2 つのアクセスを実行し、終了コードで 1 つのアクセスを実行します)。競合のない複雑さが 3 になるように、Peterson の 2 プロセス アルゴリズムを変更するにはどうすればよいですか? ありがとう。
sql - Entity Frameworkでの同時操作のロックとしてSQL dB列を使用する
ワーカー プロセスのプールによって処理される長時間実行されるユーザー操作があります。データの入出力は Azure SQL から行われます。
マスター Azure SQL テーブル構造の列は次のように近似されます
beingProcessed
ブール値で、lastTimeProcessed
DateTime です。すべてのワーカー ロールのロジックは以下に示すとおりであり、複数のワーカー処理 (それぞれが独自の Entity Framework レイヤーを使用) を使用して、本質的beingProcessed
に MutEx の目的でロックを使用しています。
質問beingProcessed
:上記の負荷に基づいて、「ロック」自体の同時実行の問題にどのように対処できますか? read-modify-write
ニーズに対する操作はbeingProcessed
アトミックである必要があると思います が、他の戦略にもオープンです。他のコードの改良も可能です。
[更新]: ここで何が必要なのだろうかTransactionScope
... http://msdn.microsoft.com/en-US/library/system.transactions.transactionscope(v=vs.110).aspx
コード:
sql-server - 相互に排他的なテーブル列を作成する方法
1つのトランザクションに対して2つのレコードを保存しているテーブルTransactionsがあり、1つは借方記入とその他の貸方記入用です。
したがって、テーブルcreditAmount(Money)
とに2つの列がありますdebitAmount(Money)
。
各行でいずれかの列がnullにならないテーブルレベルの制約が必要です。つまり、行#3creditAmount
がnullの場合debitAmount
、何らかの値を保持する必要があり、その逆も同様です。
レコードを行に挿入するときに同じことを確認するにはどうすればよいですか?
java - シンクロ 入らない
注: 回避策を探しているわけではありません。必要に応じて、他の方法を見つけることができると確信しています。何か基本的なことや変わったことが欠けているように感じて、何が欠けているのか知りたいのです。または、デバッガーを使用してより多くの情報を取得する方法があれば、それもいいでしょう。ありがとう!
同期の使用に問題があります。デッドロックが発生していますが、まったく不可能のようです。すべての同期呼び出しの前、各呼び出しのすぐ内側、および終了直前に print ステートメントを配置したので、誰がどの同期オブジェクトを保持しているかを確認できます。現在誰もオブジェクトのロックを保持していなくても、同期された呼び出しの 1 つに入らないことがわかりました。私が見逃している癖や違法なネスティング操作はありますか? これが私がやっていることの要点です。
そうそう、そして最も奇妙なことは、2 つの「busyFlagObject」同期を削除すると、正常に動作することです...
スレッド 1:
スレッド 2:
process - プロセスの同期において、モニターとは何ですか?
Semaphore、Mutex などについては、インターネット上に多くの情報があります。しかし、私が検索した限りでは、モニターに関する明確な情報はありません。
Mutex がプロセス間の相互排除に役立つことを知っています。バイナリ セマフォも同様の機能を果たします。では、モニターという新しい概念を導入して何の役に立つのでしょうか。
c# - リソース自体をモニターとして使用してリソースをロックできますか?
マルチスレッド実行コンテキストがあります。1つのリソース(たとえばオブジェクトr)を相互に排他的にしたいと思います。リソース自体をモニターオブジェクトとして使用できますか?
例えば
joomla - joomlaでの相互排除
以下を使用して joomla の拡張機能を作成しました。
2 人のユーザーがサイトにログオンしている場合、データベース内で 2 つのレコードを一緒に実行すると、このステートメントはどちらの場合も同じ値を返すことを説明しました。PHP では、この問題をトランザクションで解決できます。
joomlaでこの問題を解決するにはどうすればよいですか?
concurrency - 相互排除(ピーターソンのアルゴリズム)
私はピーターソンのアルゴリズム (2 つのプロセスの相互排除) を見ています。私の質問は、プロセスがまだクリティカル セクションに入っておらず、P0 が初めてクリティカル セクションに入る場合、P1 のフラグは false になるので、P0 はどのようにクリティカルセクションに入りますか?P0 がクリティカル セクションに入る条件は、P1 が true になるフラグに依存します。
コード: