問題タブ [readwritelock]
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.
mysql - テーブルが読み取り/書き込みロックされている場合、どのようにして行を読み取ることができますか?
これらのクエリを MySQL 5.6.13 で実行しています。反復可能な読み取り分離レベルを使用しています。表は次のようになります。
セッションAターミナルで、以下のステートメントを発行しました
セッション B ターミナルで、ACL Cables の値 lead_time を 2 に更新しようとしました。しかし、セッション A からの前の UPDATE コマンドがまだコミットされていないため (そしてセッション A はメーカー テーブルに排他ロックを持っているため)、この更新は待機します。これは理解できます。
しかし、以下のようにセッション B で SELECT ステートメントを実行しようとすると、
製造元テーブルを正しくクエリし、行を提供します。これはどのように起こりますか?セッションAはまだ製造元テーブルの排他ロックを保持しているため、テーブルで排他ロックが保持されている場合、他のトランザクションは前のトランザクションがコミットされるまで読み書きできません。
c# - 読み書き同期クラスの実装
私は読み書き同期クラスを書いていますが、次に何をすべきかアドバイスが欲しいです。何らかの理由でRead
、 の途中で が発生するWrite
ことがありますが、その理由がわかりません。
これは私がこのクラスに望むものです:
- 書き込みと同時に読み取りを行うことはできません。
- 複数の読み取りが同時に発生する可能性があります。
- 一度に実行できる書き込みは 1 つだけです。
- 書き込みが必要な場合、既に実行中のすべての読み取りが続行され、新しい読み取りは許可されず、すべての読み取りが終了すると書き込みが実行されます。
.Net フレームワークにはこれを行うためのクラスがあることは知っていますが、私が知りたいのは、そのようなことを理解し、再現することです。私は車輪を再発明しているわけではありません。私は自分の車輪を作ることによってそれを理解しようとしています...たまたま私の車輪が少し四角いです。
私が現在持っているのはこれです:
これは私のテストプログラムです...何か問題が発生すると、行が赤で表示されます。
このすべての何が問題なのですか...正しく行う方法について何かアドバイスはありますか?
sql - 同時実行制御における write_lock と read_lock の違いは何ですか? PostgreSQL で read_lock を実装するには?
並行性の write_lock と read_lock の違いは何ですか? write_lock では何が許可されていますか? read_lock では何が許可されていますか? PostgreSQL では、FOR UPDATE で write_lock を実装できます。
PostgreSQL で read_lock を実装するには?
multithreading - Lispで解放せずに読み書きロックを取得する方法は?
Clozure CL を使用してアプリを作成しています。アプリでは、いくつかのファイルを書き込む必要があるため、ファイルごとに読み書きロックを作成しました。
今、私はquit関数を書こうとしています。すべてのファイルの書き込みが完了したかどうかを確認して終了します。基本的には以下のように動作します。
- すべてのファイルの読み取り/書き込みロックを取得します
- CCLをやめる
Clozure CL ドキュメントを読みましたが、grab-write-lock のような関数が見つかりません。「grab-lock」、「with-read-lock」、「with-write-lock」しか見つかりません。'grab-lock' は read-write-lock では機能しません。他の 2 つは自動的にロックを解放します。では、すべてのファイルの読み取り/書き込みロックを取得して (解放せずに)、アプリを終了するにはどうすればよいでしょうか?
java - お互いの入力に応じてリアルタイムで 2 つのドキュメントを更新する方法は?
JTextField に対応する 2 つの抽象ドキュメントがあるとします (両方の JTextField は異なる変数です)。
ユーザーが JtextField1 (ドキュメント A) に数値を入力すると、それに応じて実行時に他の JTextField2 (ドキュメント B) を更新する必要があります。ユーザーが同じプログラムの実行時に JTextField2 (ドキュメント B) に数値を入力した場合も同様であり、JTextField1 (ドキュメント A) を更新する必要があります。
Document Listener を使用してこれを解決しようとしましたが、デッドロックが発生するため、両方 (または正確には互い) ではなく、実行時に一方のドキュメントを更新する (A が B を更新するか、その逆) 場合にのみ機能します。この問題に DocumentFilter を使用する必要がありますか? ただし、この状況にどのように適用するかはわかりません。フィールドがフォーカスされていないときにFocusListenersを使用し、DocumentListenerを無効にすることで、デッドロック/書き込みロックの問題を回避しようとしましたが、スレッドをまったく処理しないため、非常に単純なアプローチでした(それが問題である場合)。他のフィールドが選択されたときに別のスレッドを作成すれば十分でしょうか?私はマルチスレッドについての本当の知識はありません。この問題について何らかのアドバイスをいただければ幸いです。
コード: http://pastebin.com/qqYPXcAf
ユーザー入力時に実行時にARを維持するために、幅/高さのサイズをピクセル単位で更新するPhotoshopの同様のGUI機能を再作成しようとしています(画像: http://puu.sh/9L07v/c745e85867.png )
java - 検索と変更の同期
リスト (または他のデータ構造) 上の複数のスレッドからの検索を許可するが、リスト上の検索と異なるスレッド上のリストへの編集がインターリーブしないようにする良い方法は何ですか? 検索および編集メソッドで同期ブロックを使用してみましたが、複数のスレッドで検索を実行しようとすると不要なブロックが発生する可能性があります。
編集: ReadWriteLock はまさに私が探していたものです! ありがとう。