問題タブ [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.
sql-server - SQL Server ロックの説明
以下は、SQL Server 2000 がサポートする予定のロックの一覧です。「インテント」ロックが実際に何を意味するのか、少し混乱しています。私は Web を見回しましたが、答えは少しわかりにくいようです。
私の特定の質問への回答を得ることに加えて、この質問を Wiki として使用して、各ロックが何を意味し、どのような状況でそのタイプのロックが取得されるかを調べたいと考えています。
- 共有 (S)
- 更新 (U)
- 排他的 (X)
- 意図
- インテント シェアード (IS)
- インテント エクスクルーシブ (IX)
- 意図的排他的共有 (SIX)
- インテント更新 (IU)
- インテントの排他的更新 (UIX)
- 共有意図更新 (SIU)
- スキーマ
- スキーマ変更 (Sch-M)
- スキーマの安定性 (Sch-S)
- 一括更新 (BU)
- キー範囲
- 共有キー範囲と共有リソース ロック (RangeS_S)
- 共有キー範囲と更新リソース ロック (RangeS_U)
- Key-Range と Null Resource ロックを挿入 (RangeI_N)
- 排他的キー範囲と排他的リソース ロック (RangeX_X)
- 変換ロック (RangeI_S、RangeI_U、RangeI_X、RangeX_S、RangeX_U)
svn - ApacheServerとTortoiseSVNを使用したファイルのロック
ローカルソースコードリポジトリ用のTortoiseSVNを備えたApacheサーバーが表示されています。現在、試用目的で、2人のユーザーのみを設定しています。管理者が、誰かがチェックアウト(作業ディレクトリにコピー)するとファイルが強制的にロックされるように設定することは可能ですか?
Abhijit Dhopate
python - GILのため、マルチスレッドPythonコードでロックは不要ですか?
グローバルインタープリターロック(つまりCPython)を備えたPythonの実装に依存していて、マルチスレッドコードを記述している場合、本当にロックが必要ですか?
GILで複数の命令を並行して実行することが許可されていない場合、保護するために共有データは不要ではないでしょうか。
これがばかげた質問である場合は申し訳ありませんが、マルチプロセッサ/コアマシン上のPythonについて私がいつも疑問に思っていたものです。
同じことが、GILを持つ他の言語実装にも当てはまります。
sql - SQL 2005-2008 での行のロック
トランザクションを開始せずに SQL 2005-2008 データベースの行をロックして、ロックが解除されるまで他のプロセスが行を更新できないようにする方法はありますか?
c# - C# / ASP.NET - Web アプリケーションのロック
私は C#/ASP.NET Web アプリケーションに取り組んでおり、ロックを行う必要がある状況がいくつかあります。理想的には、ロックは互いに関係がないため、ロックが独立して動作することを望みます。[MethodImpl(MethodImplOptions.Synchronized)]
を使用するいくつかの方法を検討してきましたlock()
が、いくつかの質問/懸念があります。
MethodImplOptions.Synchronized will essentially do
lock(this)` のようです。その場合、同期メソッドに入るスレッドは、他のすべてのスレッドが同期メソッドに入るのをブロックするようです。そうですか?もしそうなら、これは十分な粒度ではありません。その時点で、Application.Lock を使用することもできそうです。(でも、間違っていたら訂正してください。)
に関してlock()
、私は何を渡す必要があるかを理解しようとしています。この目的のためだけに一連のオブジェクトを作成し、それぞれを異なるロックに使用する必要がありますか? より良い方法はありますか?
前もって感謝します!
language-agnostic - 低レベルのロックを取り除くテクニック
低レベルのロックを減らすために適用できる戦略が必要であり、疑問に思っています。ただし、これはサーバー アプリケーション用の新しいコード (数万行の C++ コード) ではないため、すべてを書き直すことはできません。
この問題の解決策は今のところないのではないかと心配しています (遅すぎます)。ただし、他の人が使用した良いパターンについて聞きたいです。
現在、ロックが多すぎて競合が少ないため、パラノイアによって引き起こされたハードウェア パフォーマンスの問題です。コードを説明する最良の方法は、シングル スレッド コードが突然ロックでいっぱいになることです。
sql-server - 楽観的ロックと悲観的ロック
楽観的ロックと悲観的ロックの違いを理解しています。一般的にどちらを使用するかを誰かに説明してもらえますか?
また、クエリを実行するためにストアド プロシージャを使用しているかどうかによって、この質問に対する答えは変わりますか?
ただし、楽観的とは「読み取り中にテーブルをロックしない」ことを意味し、悲観的とは「読み取り中にテーブルをロックする」ことを意味します。
version-control - バージョン管理システムで悲観的ロックを避けるのはなぜですか?
バージョン管理に関して私が読んだいくつかの投稿に基づいて、人々はバージョン管理システムでの悲観的なロックは悪いことだと考えているようです。なんで?ある開発者がファイルをチェックアウトしている間に別の開発者が変更を送信できないことは理解していますが、それでどうすればよいでしょうか? コード ファイルが非常に大きく、常に複数の人が同時に作業している場合は、コードを再編成する必要があります。より小さな機能単位に分割します。
並行コード変更の統合は、優れたバージョン管理システムが提供するツールを使用して簡単に行えるようにしても、退屈でエラーが発生しやすいプロセスです。できれば避けたほうがいいと思います。では、悲観的ロックが推奨されないのはなぜでしょうか?
c# - マルチスレッドコンテキストでメソッドを排他的にするには?
排他的な方法で実行する必要があるメソッドがあります。基本的に、これはメソッドがタイマーによって定期的に呼び出されるマルチスレッド アプリケーションですが、ユーザー アクションによって手動でトリガーすることもできます。
例を見てみましょう:
タイマーが経過したため、メソッドが呼び出されます。このタスクには数秒かかる場合があります。
直後に、ユーザーがいくつかのボタンをクリックすると、同じタスクがトリガーされます: BAM. メソッドはすでに実行されているため、何もしません。
私は次の解決策を使用しました:
lockObject
そのように宣言されている場所:
編集: このメソッドを保持するオブジェクトのインスタンスは 1 つしかないため、ロック オブジェクトを非静的になるように更新しました。
それを行うより良い方法はありますか?それとも、これは何らかの理由で間違っているのでしょうか?
java - Java での AutoLock - 方法は?
スコープを離れるときにリソースを解放する (この場合は ReadWriteLock のロックを解除する) 最良の方法は何ですか? 考えられるすべての方法 (リターン、ブレーク、例外など) をカバーするにはどうすればよいですか?