問題タブ [locking]

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 投票する
8 に答える
12697 参照

c# - C# で条件付きロックを作成するにはどうすればよいですか?

コードの重要な部分を保護するためにlock ステートメントを使用してきましたが、いくつかの条件が満たされれば、その重要なコードの同時実行を許可できることに気付きました。
ロックを調整する方法はありますか?

0 投票する
12 に答える
90857 参照

c++ - C++ のリーダー/ライター ロック

C++ で優れたリーダー/ライター ロックを探しています。使用頻度の低い 1 人のライターと頻繁に使用する多数のリーダーのユース ケースがあり、これを最適化したいと考えています。クロスプラットフォームのソリューションが望ましいですが、Windows のみのソリューションも受け入れられます。

0 投票する
16 に答える
174311 参照

c# - lock(this) {...} が悪いのはなぜですか?

MSDNのドキュメントには、

「インスタンスがパブリックにアクセスできる場合の問題」です。なぜだろう?ロックが必要以上に長く保持されるためですか?それとも、もっと陰湿な理由がありますか?

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

c# - C#でスコープロックを実装することは可能ですか?

C ++の一般的なパターンは、ロックをラップするクラスを作成することです。ロックは、オブジェクトの作成時に暗黙的に取得されるか、後で明示的に取得されます。オブジェクトがスコープ外になると、dtorは自動的にロックを解除します。C#でこれを行うことは可能ですか?私が理解している限り、オブジェクトがスコープ外になった後、C#のdtorがいつ実行されるかについての保証はありません。

明確化:一般的なロック、スピンロック、ReaderWriterLockなど。Disposeを呼び出すと、パターンの目的が無効になります。つまり、スコープを終了するとすぐにロックが解放されます。途中でreturnを呼び出したり、例外をスローしたりするかどうかは関係ありません。また、私が理解している限り、使用するとGCのオブジェクトのみがキューに入れられ、すぐに破棄されることはありません...

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

sql - このシナリオでは、SQL Serverのロックはどのように機能しますか?

私がトランザクションを持っていると考えてください:

そして、2つのスレッドで次の順序で実行されます。

  1. スレッド1-選択
  2. スレッド2-選択
  3. スレッド1-更新
  4. スレッド2-更新

実行前の金額が0であると仮定します。

この場合、SQL Serverのさまざまな設定(コミットされていない読み取り、コミットされた読み取り、繰り返し可能な読み取り、シリアル化可能)で何が起こり、最後にいくらになるか、デッドロックが発生しますか?

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

.net - Windows でロックされているファイルまたはフォルダーをプログラムでコピーするにはどうすればよいですか?

現在ロックされているファイルをコピーするための API 呼び出しは何ですか。.Net を使用できることを望んでいますが、Win32 呼び出しも問題ありません。

Unix やその他の OS でのほぼ同じ機能について、気軽に声をかけてください。

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

mysql - mysql挿入競合状態

MySQL で競合状態を停止するにはどうすればよいですか? 当面の問題は、単純なアルゴリズムによって引き起こされます。

  1. テーブルから行を選択する
  2. 存在しない場合は、挿入します

次に、重複する行を取得するか、一意/主キーを介してそれを防止すると、エラーが発生します。

通常、ここではトランザクションが役立つと思いますが、行が存在しないため、トランザクションは実際には役に立ちません (または、何か不足していますか?)。

特にテーブルが 1 秒間に複数回更新される場合、LOCK TABLE はやり過ぎのように聞こえます。

私が考えることができる唯一の他の解決策は、すべての異なる ID に対して GET_LOCK() ですが、より良い方法はありませんか? ここでもスケーラビリティの問題はありませんか? また、すべてのテーブルに対してこれを行うのは少し不自然に聞こえます。これは、同時実行性の高いデータベースでは非常に一般的な問題のように思えます。

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

python - グローバル インタープリター ロックの理由

Python の Global Interpreter Lock の正確な機能は何ですか? バイトコードにコンパイルされる他の言語は、同様のメカニズムを採用していますか?

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

windows - Windows XP のロックまたはロック解除時にスクリプトを実行する

Windows XP マシンと Ubuntu を実行している Linux マシンがあります。Synergyを介して Windows マシンからキーボード/マウスを共有しています。私がやりたいことは、Windows マシンをロック/ロック解除するたびに Linux マシンをロック/ロック解除することです。

そのため、Windows が画面をロックまたはロック解除するときに、何らかの説明のスクリプトを実行できるようにしたいと考えています。

0 投票する
7 に答える
8906 参照

database - Djangoでの不可分操作?

私は(私が思うに)カウンター用の非常に単純なデータモデルを実装しようとしています:

誰かがやってくると、visitTypeとvisitDateに一致する行を探します。この行が存在しない場合は、counter=0で作成されます。

次に、カウンターをインクリメントして保存します。

私の懸念は、このプロセスが完全に人種であるということです。2つのリクエストが同時にエンティティが存在するかどうかを確認し、両方がエンティティを作成する可能性があります。カウンターを読み取ってから結果を保存するまでの間に、別の要求が発生してそれをインクリメントする可能性があります(結果としてカウントが失われます)。

これまでのところ、Djangoのドキュメントでもチュートリアルでも、これを回避する良い方法は見つかりませんでした(実際、チュートリアルの投票部分に競合状態があるようです)。

これを安全に行うにはどうすればよいですか?