CountDownlatch 실례 1
2560 단어 Java
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
public class CountDownLatchExample {
public static void main(String[] args) throws InterruptedException {
CountDownLatch latch = new CountDownLatch(5);
Service service = new Service(latch);
Runnable task = () -> service.exec();
for (int i = 0; i < 5; i++) {
Thread thread = new Thread(task);
thread.start();
}
System.out.println("main thread await. ");
latch.await();
System.out.println("main thread finishes await. ");
}
}
class Service {
private CountDownLatch latch;
public Service(CountDownLatch latch) {
this.latch = latch;
}
public void exec() {
try {
System.out.println(Thread.currentThread().getName() + " execute task. ");
sleep(2);
System.out.println(Thread.currentThread().getName() + " finished task. ");
//System.out.println(1/0);// , finally{} , finally{}
} finally {
latch.countDown();
System.out.println(latch.getCount());
}
//System.out.println(111111111);//try ,
}
private void sleep(int seconds) {
try {
TimeUnit.SECONDS.sleep(seconds);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
출력:
Thread-0 execute task. main thread await. Thread-1 execute task. Thread-3 execute task. Thread-2 execute task. Thread-4 execute task. Thread-0 finished task. 4 Thread-1 finished task. 3 Thread-3 finished task. 2 Thread-4 finished task. Thread-2 finished task. 1 0 main thread finishes await.
Countdown Latch 에 서 는 countdown 이 꼴찌 라 는 뜻 이 고, latch 는 빗장 이라는 뜻 이다.전체적인 의 미 는 역수 의 빗장 으로 이해 할 수 있 는데 약간 '3, 2, 1, 참깨 가 문 을 여 는 것' 같은 느낌 이 든다.Countdown Latch 의 역할 도 마찬가지 입 니 다. Countdown Latch 를 구성 할 때 하나의 정수 n 을 입력 해 야 합 니 다. 이 정수 '카운트다운' 이 0 이 되 기 전에 메 인 스 레 드 는 문 앞에서 기 다 려 야 합 니 다. 이 '카운트다운' 과정 은 각 실행 스 레 드 에 의 해 작 동 되 고 모든 스 레 드 는 하나의 작업 '카운트다운' 을 한 번 수행 해 야 합 니 다.총괄 적 으로 말 하면 Countdown Latch 의 역할 은 다른 라인 이 모두 임 무 를 수행 할 때 까지 기다 리 는 것 이다. 필요 할 때 각 임무 의 집행 결 과 를 종합 한 다음 에 메 인 라인 이 계속 아래로 실행 된다.
참고:https://www.jianshu.com/p/128476015902
CountDownlatch 실례 2
CountDownlatch 실례 1
CyclicBarrier 실례 2
CyclicBarrier 실례 1
Cyclic Barrier 와 Count Downlatch 의 차이 점
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.