タグ付けされた質問 「countdownlatch」

12
CountDownLatchはJavaマルチスレッドでどのように使用されますか?
誰かが私にJava CountDownLatchとは何か、いつそれを使用するかを理解するのを手伝ってくれる? このプログラムがどのように機能するのか、私にはよくわかりません。私が理解しているように、3つのスレッドすべてが一度に開始し、各スレッドは3000ms後にCountDownLatchを呼び出します。したがって、カウントダウンは1つずつ減少します。ラッチがゼロになった後、プログラムは「完了」と出力します。多分私が理解した方法は間違っています。 import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class Processor implements Runnable { private CountDownLatch latch; public Processor(CountDownLatch latch) { this.latch = latch; } public void run() { System.out.println("Started."); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } latch.countDown(); } } // ------------------------------------------------ ----- public class App { …

14
Javaの同時実行性:カウントダウンラッチと循環バリア
私はを通読しているjava.util.concurrentのAPI、およびことがわかりました CountDownLatch:1つ以上のスレッドが、他のスレッドで実行されている一連の操作が完了するまで待機することを可能にする同期補助。 CyclicBarrier:一連のスレッドが互いに共通のバリアポイントに到達するのをすべて待機できるようにする同期補助。 私にはどちらも平等に見えますが、それだけではないでしょう。 たとえば、CoundownLatch, the countdown value could not be reset, that can happen in the case of CyclicBarrier。 2つの間に他の違いはありますか?誰かがカウントダウンの値をリセットしたいところ はuse casesどこですか?

6
CountDownLatchとセマフォ
使用する利点はありますか java.util.concurrent.CountdownLatch の代わりに java.util.concurrent.Semaphore? 私の知る限り、次のフラグメントはほぼ同等です。 1.セマフォ final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { public void run() { try { doStuff(); } finally { sem.release(); } } }; t.start(); } sem.acquire(num_threads); 2:CountDownLatch final CountDownLatch latch …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.