問題タブ [locks]
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.
c# - LINQ を使用した構成可能なロック。誰でもこれに問題がありますか?
私は LINQ をいじっていて、C# Monadic 構文を利用してロックを作成するための次のアイデアを思いつきました。単純すぎるように思えるので、StackOverflow に投稿して、このアプローチの大きな問題を誰かがすぐに見つけられるかどうかを確認してみようと思いました。
アトミック実装内のロックにコメントすると、アカウントが破損していることがわかります。
このアイデアは、明示的なロックなしでアカウントの操作を構成できるようにすることです。
windows - VC ++でロックを作成するにはどうすればよいですか?
クリティカルセクションを実装し、VC ++で一部のアレイを保護しているとしましょう。VC++でロックを使用してそれを行うにはどうすればよいですか?
java - Java マルチスレッドでインスタンスで取得されたロック
Javaのロックはインスタンス(オブジェクト)ベースで取得されると読みました(インスタンスメソッドの場合)
また、ロックはクラスのオブジェクトで取得できます(静的メソッドの場合)。
しかし、特定のオブジェクトが一度にいくつのロックを取得できるのだろうか?
オブジェクトは一度に複数のロックを所有できますか?
はいの場合、例を挙げて説明してください。
私のコンセプトを明確にするのを手伝ってください。
c++ - WaitForSingleObject はロックされていません。他のスレッドが C++ で値を変更できるようにします。
複数のスレッドを使用して変数をロックしようとしてWaitForSingleObject(fork[leftFork], Infinite);いますが、何もロックしていないようです
を設定してHandle fork[5]から以下のコードを使用しますが、何もロックしていないようです。
WaitForMultipleObjects私も同様に試しましたが、同じ結果です。使用するミューテックスを作成するときfork[i]= CreateMutex(NULL, FALSE,NULL);
これは各スレッドにのみ有効なのか、それとも共有するのか疑問に思っていましたか?
c# - 複数のスレッドから DbSet に要素を追加するメソッド
このメソッドは、複数のスレッドから呼び出されます。現在、静的ロックを使用して、2 つのスレッドが同時にデータを保存するのを回避しています。データを保存したいだけなので、これは間違っていますが。エントリが既に存在するために挿入 (追加) が失敗した場合に備えて、catch を使用して更新クエリを作成します。
ロックを解除するとどうなりますか。作品はどうなるSaveChanges?私のコードはどのように見えるべきですか? ありがとう
mysql - データベースとそのロックの比較
大量のトランザクションが発生しているので、現在のデータベースでロックがどのように実装されているかについての情報を取得したいと思います。ゼロバジェットで作業している私の選択は、mysql5.5とpostgres9.0に制限されています。
ロックを比較するサイトはありますか?
文献から、読み取り専用ロックと読み取り/書き込みロックを設定できること、およびロックを処理する良い方法はデータへのパスをブロックすることであることを知っています。これは、btreeの一部をブロックすることを意味します。しかし、これらのデータベースがどのように機能するかについての詳細はわかりません。
どうもありがとう。
java - ネストされた同期とその結果のデッドロックを回避する方法
機能で 2 つのオブジェクトをロックする必要があり、現在のコードは次のようになります。
ご覧のとおり、これは、別のスレッドがこのコードを obj1 と 2 を逆にして実行した場合のデッドロックの単純明快なレシピです。
concurrency-utils ロックを使用してこの状況を回避する方法はありますか?
オブジェクトとそのロックのマップを維持し、それらが利用可能かどうかを確認することを考えていましたが、ロックの順序を予測する明確な方法を思いつくことができないようです.
c - pthread_mutex_lock(&mutex) を取得しようとするスレッド ロックを取得できない場合はどうなりますか?
C プログラミング:
スレッドがミューテックス ロックを取得しようとして、取得に失敗するとどうなりますか?
それは眠りますか?
pthread_mutex_unlock(&mutex); の場合、スレッドは起動されますか? と呼ばれる?
その後、もう一度ロックを取得してみますか?
python - マルチスレッドアプリケーションでのログロック取得および解放呼び出し
さまざまなロックを使用するマルチスレッドPythonアプリケーションをデバッグしようとしています。
ロックが取得および解放される場所とタイミングを追跡するためにショット全体にlog.debug(...)ステートメントを配置するのではなく、私の考えは、メソッドthreading.Lock.acquire()およびthreading.Lock.release( )を装飾することです。 、および呼び出しの前に次のようなものを付けます。
ここで、logはグローバルロギングオブジェクトです-議論のために。
理想的には、ログエントリの「lock」という名前は実行時に派生する必要があります。これにより、ログでこれらのメソッドが呼び出されるロックオブジェクトに関係なく、名前、装飾された操作、現在のスレッド、クラス、および関数が出力されます。操作(取得|解放)が呼び出されます。
免責事項:上記のコードは、このようなデコレータの実装には不十分であることを認めます。これは、私が達成できると思うことの味を与えるためだけに提供されています。
スレッドライブラリの元のソースコードをドクターせずに、つまり呼び出し元のアプリケーションコード内から、標準ライブラリメソッドを装飾できるかどうか誰かが知っていますか?
おそらく私は間違った木を吠えていますが、デコレータを使用せずに同じ目的を達成するためのより良い方法がありますか?これが実際に当てはまる場合は、ガイダンスを事前に感謝します。
解決策:(lazyrに触発されて)
次のコードは、ロック操作をログに記録し、ロック操作を呼び出すメソッド/関数の名前を示します(Conditionsとその追加のwait()およびnotify()メソッドで動作するようにコードを調整しています)。
ログインスタンスがLogLockに渡された場所。initはlogging.Formatterで次のように定義され、呼び出し元のスレッドのIDを取得しました。