問題タブ [countdownlatch]
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 - スレッド数を増やすとレイテンシが高くなる
以下のコードでは、DataGather = endDataGather - beginDataGather は 1.7 ミリ秒かかり、サービスが応答するまでの時間 = service_COMPLETED - service_REQUEST_SENT は 20us から 200us まで変化します (同じ LAN でダミーのダミーであるため、非常に低いため) tomcat8 スレッドを 10 から 10 に増やすと、 200、DataGather は 150ms + に増加し、スレッドを 200 から 1000 に増やしても 250+ に増加します。マシン仕様 8 コア Xenon、64 GB RAM。apache ベンチマークが -n 40000 -c 100 args で実行されたときに時間が測定されます。これは、スレッドのスケジューリング/コンテキストの切り替えなどによるものですか? このバリエーションを取り除くにはどうすればよいですか?レイテンシが 20 ~ 100 ミリ秒の実際のサービスが登場したときに残るのでしょうか。
java - Android ロック スレッドの CountDownLatch
CountDownLatch
Androidアプリで遊んでみました。現在、API に対して 2 つのリクエストを作成しようとしVolley
ています。データが取得されて保存されるまで待ってから、スレッドの実行を続行します。
これは私のコードのサンプルです:
問題は、カウントダウンが「完了」していないように見え、ラッチが解放されないためにフリーズすることです。API リクエストは動作しており、onSuccess
コールバックは正常にヒットすることを確認しましたが、スレッドがハングします。
更新CountDownLatch
0 に設定するとヒットする
ことに気付きましたがonSuccess
、0 より大きい値に設定するとフリーズしてonSuccess
呼び出されません。スレッドで何かがおかしいようです。
java - javaのCountDownLatchのポイントは何ですか?
CountDownLatch
in Java は、すべてのスレッドの準備が整うまで特定のスレッドが処理を開始するのを防ぐために使用される高レベルの同期ユーティリティです。
しかし、Semaphore
まったく同じことができます。それで、のメリットはCountDownLatch
何ですか?
もう 1 つの質問:CountDownLatch
メリットがあるとすれば、なぜ 1 回だけ使用するように設計されているのですか? カウントをリセットする set メソッドを追加するのは簡単だと思います。
java - ノード値を取得する Firebase データベース
Firebase RealTime データベースから wgID を取得したいのですが、これは /WG/FlatNumber/ の値として配置されています。コードは次のとおりです。
主な活動:
schreibeFlat オブジェクト:
したがって、CountdownLatch を使用しない場合は、次のようにSystem.out.println
なります。
私が見ているように、リスナーはメソッドの準備が整った後に実行されます。
CountDownLatch を使用すると、「cdl.await()」になるまで実行されてから停止し、リスナーは実行されず、アプリは停止します。
では、ID を取得するにはどうすればよいですか。つまり、データベースから 1 つの値だけが必要です。「setValue()」で設定できますが、「getValue」などで読み取ることはできません。リスナーで行う必要がありますか?
multithreading - CountDownLatch の await() の目的は何ですか?
私が使用している次のプログラムがあり、メソッドjava.util.concurrent.CountDownLatch
を使用せずに正常に動作しています。await()
私は同時実行に不慣れで、の目的を知りたいですawait()
。が必要な理由は理解できますが、なぜCyclicBarrier
ですか?await()
CountDownLatch
クラスCountDownLatchSimple
:
クラスのRunner
実装Runnable
:
出力
2 は待っています。
3 は待っています。
1つは待っています。
1つは完了です。
2つが完成しました。
3つ完成です。
java - Spring 4 で並列スレッドを実行するエレガントな方法
私はAPIを開発しています。この API は、結果を取得するために 2 つの DB クエリを実行する必要があります。
私は次の戦略を試しました:
- コントローラーの戻り値の型として callable を使用します。
Service に 2 つのスレッドを作成 (Callable と CoundownLatch を使用) して、2 つのクエリを並行して実行し、終了時間を検出しました。
/li>
うまくいきましたが、どこかでSpringの構造を壊しているように感じます。
Spring 4 でデータを取得する最も効率的な方法は何
ですか?
・スレッドの使用や解放など、スレッド資源の制御方法は?
前もって感謝します。