問題タブ [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 投票する
5 に答える
29385 参照

c# - C#で「ロックを試み、タイムアウトした場合はスキップする」操作はありますか?

オブジェクトをロックしようとする必要があり、既にロックされている場合は続行します (タイムアウト後、またはそれなしで)。

C# の lock ステートメントがブロックされています。

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

concurrency - ドキュメントサーバー:同時保存の処理

ドキュメントサーバーを実装しています。現在、2人のユーザーが同じドキュメントを開き、それを変更して変更を保存すると、ドキュメントの状態は未定義になります(最初のユーザーの変更が永続的に保存されるか、2番目のユーザーの変更が永続的に保存されます)。これは完全に不十分です。この問題を解決するために、2つの可能性を検討しました。

1つは、誰かが最初に開いたときにドキュメントをロックし、閉じたときにロックを解除することです。ただし、サーバーへのネットワーク接続が突然中断された場合、ドキュメントは永久にロックされた状態のままになります。明らかな解決策は、サーバーに定期的なpingを送信することです。サーバーが特定のクライアントからKpingを連続して受信しない場合(K> 1)、このクライアントによってロックされているドキュメントのロックが解除されます。そのクライアントが再び表示された場合、誰かがまだドキュメントをロックしていない場合は、ドキュメントが再びロックされます。これは、クライアントアプリケーション(Webブラウザで実行中)が予期せず終了し、サーバーに「終了、ドキュメントのロックを解除」信号を送信できなくなった場合にも役立ちます。

2つ目は、異なるユーザーによって保存された同じドキュメントの複数のバージョンを保存することです。ドキュメントへの変更が連続して行われる場合、システムはバージョンをマージするか、優先バージョンを選択することを提案します。ストレージスペースを最適化するには、ドキュメントの差分のみを保持する必要があります(ソース管理ソフトウェアと同様)。

サーバーへの接続が遅く、応答しない場合があることを考慮して、どの方法を選択する必要がありますか?パラメータ(ping間隔、高速連続間隔)はどのように決定する必要がありますか?

PS残念ながら、ドキュメントをデータベースに保存できません。

0 投票する
17 に答える
142417 参照

multithreading - デッドロックとは?

マルチスレッド アプリケーションを作成する際に発生する最も一般的な問題の 1 つは、デッドロックです。

コミュニティへの私の質問は次のとおりです。

  1. デッドロックとは?

  2. それらをどのように検出しますか?

  3. それらを処理しますか?

  4. 最後に、それらの発生をどのように防止しますか?

0 投票する
14 に答える
28823 参照

perl - Perl でファイルをロックするにはどうすればよいですか?

Perlでファイルにロックを作成する最良の方法は何ですか?

ファイルを群がらせるか、ロックファイルを作成してロックを配置し、ロックファイルのロックを確認するのが最善ですか?

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

sql - データベースの読み取りロックを回避するにはどうすればよいですか?

データベースの読み取りロックを回避するにはどうすればよいですか?

複数のデータベースへの回答を歓迎します!

0 投票する
4 に答える
7152 参照

sql - プロセスの実行中に特定の SQL 行をロックするにはどうすればよいですか?

私の作品には、複数のユーザーが同時に作業できる でVB.NET書かれた金融アプリケーションがあります。SQL

ある時点で、1 人のユーザーが、自分 (および場合によっては他のユーザー) が現在取り組んでいるエントリのバッチを投稿することを決定する場合があります。

明らかに、Post プロセスが開始された、他のユーザーがそのバッチのエントリを追加編集、または削除することは望ましくありません。

Post プロセスが開始された瞬間に SQL トランザクションを開くことですべてのデータをロックできることは既に確認しましたが、プロセスはかなり長くなる可能性があり、関数を完了するのに数分間かかる可能性があるため、トランザクションを開いたままにしないでください。 .

VB.NET コードから操作する必要があるとわかっているレコードだけをロックする方法はありますか?

0 投票する
4 に答える
62925 参照

c# - C# の bool 読み取り/書き込みアトミックです

C#でブールフィールドにアトミックにアクセスしていますか? 特に、ロックを設定する必要がありますか:

0 投票する
10 に答える
35094 参照

c# - C#でキーワードをロックする

MSDNのロックキーワードの主な機能を理解しています

ロックステートメント(C#リファレンス)

lockキーワードは、特定のオブジェクトの相互排他ロックを取得し、ステートメントを実行してからロックを解放することにより、ステートメントブロックをクリティカルセクションとしてマークします。

ロックはいつ使用する必要がありますか?

たとえば、データを保護するため、マルチスレッドアプリケーションでは意味があります。しかし、アプリケーションが他のスレッドをスピンオフしない場合は必要ですか?

ロックの使用にパフォーマンスの問題はありますか?

どこでもロックを使用しているアプリケーションを継承しましたが、それはシングルスレッドであり、それらをそのままにしておくべきかどうか知りたいのですが、それらは必要ですか?

これは一般的な知識の質問であることに注意してください。アプリケーションの速度は良好です。これが将来従うべき優れたデザインパターンであるかどうか、または絶対に必要でない限りこれを避けるべきかどうかを知りたいです。

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

c++ - C++ のトランザクショナル メモリを試した人はいますか?

私は Intel の「whatif」サイトとそのトランザクション メモリ コンパイラをチェックしていました (データベースのように、各スレッドはアトミック コミットを行うか、システムのメモリをロールバックする必要があります)。

ロックとミューテックスを置き換える有望な方法のように思えますが、多くの証言は見つかりません。ここに誰か入力がありますか?

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

c# - ファイルに書き込みたいが、一度に複数のライターが存在する可能性があり、ロックする必要がある

asp.net Web アプリケーションで、ファイルに書き込みたい。この関数は、最初にデータベースからデータを取得し、次にフラット ファイルに書き出します。

書き込みが1回だけ発生するようにするにはどうすればよいですか。書き込みが発生すると、書き込みが行われたため、ファイルに書き込みたいと思われる他のスレッドは書き込みを行いません。

この書き込みは、たとえば 15 分以内に行われていない場合にのみ行いたいと考えています。

lock キーワードがあることは知っているので、すべてをロックでラップしてから、15 分以上で更新されたかどうかを確認する必要がありますか、それともその逆ですか?

アップデート

ワークフロー:

これは Web アプリケーションであるため、複数のインスタンスは特定の Web ページを表示する人々になります。ビルドイン キャッシュ システムを使用することもできますが、asp.net がリサイクルする場合、キャッシュを再構築するのに費用がかかるため、フラット ファイルに書き出すだけです。私の他のオプションは、Windows サービスを作成することですが、それは私が望むより多くの管理作業です。