問題タブ [synchronized]
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.
java - メソッドの一部のスプリングと同期
私にはSpring有線Beanとしてマネージャーがいます。デフォルトで春に定義されているすべてのBeanは、シングルトンとして配線されていると思います。このBeanには、同期する必要のあるメソッドがいくつかあります。それならどうすればいいの?
また
?
java - Javaでの揮発性と同期の違い
volatile
変数を宣言することと、常にsynchronized(this)
Javaのブロック内の変数にアクセスすることの違いについて疑問に思っていますか?
この記事http://www.javamex.com/tutorials/synchronization_volatile.shtmlによると、言いたいことがたくさんあり、多くの違いがありますが、いくつかの類似点もあります。
私はこの情報に特に興味があります:
...
- volatile 変数へのアクセスがブロックされる可能性はありません。単純な読み取りまたは書き込みのみを行うため、同期ブロックとは異なり、ロックを保持することはありません。
- 揮発性変数へのアクセスはロックを保持しないため、アトミック操作として読み取り、更新、書き込みを行う場合には適していません(「更新を見逃す」準備ができていない限り)。
read-update-writeとはどういう意味ですか? 書き込みも更新ではありませんか、それとも単に更新が読み取りに依存する書き込みであることを意味しますか?
何よりも、ブロックvolatile
を介して変数にアクセスするのではなく、変数を宣言する方が適しているのはいつですか? 入力に依存する変数synchronized
に使用するのは良い考えですか? volatile
たとえばrender
、レンダリング ループを介して読み取られ、keypress イベントによって設定されるという変数がありますか?
java - Java:ロックを使用する場合、すべての可変変数は揮発性である必要がありますか?
次の変数xは揮発性である必要がありますか?
または、utils.concurrentロック内の操作は、同期ブロックと同じ機能を実行しますか(メモリに書き込まれ、CPUキャッシュに保存されないようにします)?
java - Java Synchronized キーワードはキャッシュをフラッシュしますか?
Java 5 以降のみ。マルチプロセッサの共有メモリ コンピューターを想定します (おそらく、現在使用しているコンピューターの 1 つです)。
シングルトンの遅延初期化のコードは次のとおりです。
オプティマイザーが次のように getInstance() を書き換えないようinstance
に宣言する必要があります (順次プログラムでは正しいでしょう)。volatile
オプティマイザがコードを書き直さないと仮定すると、instance
宣言されていない場合でも、ブロックが終了volatile
したときにメモリにフラッシュされ、ブロックが入力されたときにメモリから読み取られることが保証されますか?synchronized
synchronized
編集: getInstance() を静的にするのを忘れていました。それが答えの妥当性を変えるとは思いません。あなたは皆、私が何を意味するかを知っていました。
java - 2つのスレッドとメインプログラム間でオブジェクトを共有する
私はJavaを初めて使用し、並行プログラミングコースに参加しています。'synchronized'キーワードの使用やスレッド間でのオブジェクトの共有など、私が学んだ概念を示すのに役立つ最小限の実用的な例を必死に取得しようとしています。検索してきましたが、基本的なフレームワークを取得できませんでした。Javaプログラマー、親切に助けてください。
java - Java クラス内の静的メンバーのロック取得
現在、ロックの激しい競合によるパフォーマンス低下の問題を解決しています。この問題を解決するために「ロック分割」を検討しています。
スケルトンの使用パターンは::
現在の使用状況 ::
私のアプローチ ::
method1()
とmethod2()
は同じリソースを使用しないため、ロックを分割することを考えています。現時点では、両方とも静的に同期されているため、両方ともクラス ロックを争っています。私はそれをに変更することを考えています::
彼らは今、「クラスロック」またはresr1Lock
/を争うのresrc2Lock
でしょうか?
java - java:別のスレッドがステートメントをn回実行するまで待機します
スレッドを停止し、ステートメント(またはメソッド)が別のスレッドによって特定の回数実行されるのを待つための最良の方法は何ですか?私はこのようなことを考えていました(「数値」をintとします):
明らかに、これは機能しません。まず、int型でwait()を実行できないように見えるためです。さらに、私のJavaにナイーブな頭に浮かぶ他のすべてのソリューションは、このような単純なタスクでは非常に複雑です。助言がありますか?(ありがとう!)
java - EclEmma が syncronized(MyClass.class) をカバーしないのはなぜですか?
カバレッジ分析には EclEmma を使用しています。
私の Java コードには、synchronized(MyClass.class) {} ブロックが含まれています。
EclEmma は、部分的にしかカバーされていないと言っていますが、1 つのスレッドがアクセスし、別のスレッドがブロックされる単体テストがあります。
EclEmma を使用して Synchronized を完全にカバーすることは可能ですか?
この行を完全にカバーするように EclEmma に指示するために、何らかの方法でコードに注釈を付けることはできますか?
よろしくロジャー
java - スレッドが同期ブロックの前にモニターが解放されるのを待っている場合、またはそれがwait()を呼び出す場合、違いはありますか?
スレッドの状態に関する多くのドキュメントを読みましたが、ブロックされた状態(同期前)と待機状態(呼び出しが待機している場合)の2つの異なる状態があると述べているものもあれば、状態が1つしかないことを示しているものもあります。さらに、wait()ごとにnotify()を呼び出す必要があると指示しているドキュメントもあります。そうしないと、モニターのロックが解除されていても、waiting()スレッドは実行の対象になりません。
java - この場合、同期されたステートメントはどのように機能しますか?
私がこのようなクラスを持っていると仮定します:
それで:
registry
繰り返している間、それが変更されないことを確認したいだけです。同期マップにすることで、この動作が保証されますか?synchronized
または、ステートメントが必要ですか。同期されたステートメントは、期待どおりに動作しますか?
ありがとう