問題タブ [synchronized-block]

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 投票する
0 に答える
1284 参照

rx-java2 - RxJava - 同期ブロック - 内部ソース

flatMapのソースに同期ブロックを使いたい。しかし、内部ソースが作成されたときだけでなく、処理 (メソッド processItem) にもこの構造を使用する必要があります。

この Observable は 5 分ごとに呼び出されます (Observable.interval など)。

私の processesItem メソッドは次のようになります。

どちらの内部メソッドも Single を返します。

これは、サーバーからの定期的な更新方法の一部です。プロジェクトの他のクラスから呼び出されるアイテムの変更(更新、削除)のメソッド(アイテムとの同期)を使用して、processItemメソッド呼び出し(サーバーからのアイテムの定期的な同期)をシリアル化する必要があります。

主な問題は、定期的な更新が新しく更新されたアイテムを書き換えることができることです。

実際、私はこのソリューションを使用しています:

新しいアイテムを更新するためのチェーン:

定期更新のチェーン:

RxJavaソリューションが明確ではないことはわかっています。

この問題のより良い解決策を知っていますか?

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

java - 同期メソッドが正しく機能しないのはなぜですか?

カウンターを出力するこの同期メソッドがあります。4 つのスレッドがあるため、カウンターは静的変数であるため、カウンターの最終値は 400000 になると予想しています。

しかし、コードを実行するたびに、カウンターの値が異なります。

以下は私のコードです: