問題タブ [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.

0 投票する
1 に答える
302 参照

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 ミリ秒の実際のサービスが登場したときに残るのでしょうか。

0 投票する
2 に答える
5062 参照

java - Android ロック スレッドの CountDownLatch

CountDownLatchAndroidアプリで遊んでみました。現在、API に対して 2 つのリクエストを作成しようとしVolleyています。データが取得されて保存されるまで待ってから、スレッドの実行を続行します。

これは私のコードのサンプルです:

問題は、カウントダウンが「完了」していないように見え、ラッチが解放されないためにフリーズすることです。API リクエストは動作しており、onSuccessコールバックは正常にヒットすることを確認しましたが、スレッドがハングします。

更新CountDownLatch0 に設定するとヒットする ことに気付きましたがonSuccess、0 より大きい値に設定するとフリーズしてonSuccess呼び出されません。スレッドで何かがおかしいようです。

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

java - javaのCountDownLatchのポイントは何ですか?

CountDownLatchin Java は、すべてのスレッドの準備が整うまで特定のスレッドが処理を開始するのを防ぐために使用される高レベルの同期ユーティリティです。

しかし、Semaphoreまったく同じことができます。それで、のメリットはCountDownLatch何ですか?

もう 1 つの質問:CountDownLatchメリットがあるとすれば、なぜ 1 回だけ使用するように設計されているのですか? カウントをリセットする set メソッドを追加するのは簡単だと思います。

0 投票する
1 に答える
83 参照

java - ノード値を取得する Firebase データベース

Firebase RealTime データベースから wgID を取得したいのですが、これは /WG/FlatNumber/ の値として配置されています。コードは次のとおりです。

主な活動:

schreibeFlat オブジェクト:

したがって、CountdownLatch を使用しない場合は、次のようにSystem.out.printlnなります。

私が見ているように、リスナーはメソッドの準備が整った後に実行されます。

CountDownLatch を使用すると、「cdl.await()」になるまで実行されてから停止し、リスナーは実行されず、アプリは停止します。

では、ID を取得するにはどうすればよいですか。つまり、データベースから 1 つの値だけが必要です。「setValue()」で設定できますが、「getValue」などで読み取ることはできません。リスナーで行う必要がありますか?

0 投票する
1 に答える
5861 参照

multithreading - CountDownLatch の await() の目的は何ですか?

私が使用している次のプログラムがあり、メソッドjava.util.concurrent.CountDownLatchを使用せずに正常に動作しています。await()

私は同時実行に不慣れで、の目的を知りたいですawait()。が必要な理由は理解できますが、なぜCyclicBarrierですか?await()CountDownLatch

クラスCountDownLatchSimple:

クラスのRunner実装Runnable:

出力

2 は待っています。
3 は待っています。
1つは待っています。
1つは完了です。
2つが完成しました。
3つ完成です。

0 投票する
1 に答える
6205 参照

java - Spring 4 で並列スレッドを実行するエレガントな方法


私はAPIを開発しています。この API は、結果を取得するために 2 つの DB クエリを実行する必要があります。
私は次の戦略を試しました:

  • コントローラーの戻り値の型として callable を使用します。
  • Service に 2 つのスレッドを作成 (Callable と CoundownLatch を使用) して、2 つのクエリを並行して実行し、終了時間を検出しました。

    /li>

うまくいきましたが、どこかでSpringの構造を壊しているように感じます。

Spring 4 でデータを取得する最も効率的な方法は何
ですか?
・スレッドの使用や解放など、スレッド資源の制御方法は?

前もって感謝します。