반응형
CountDownLatch 는 Thread를 멀티로 병렬처리시 간단하게 관리해줄수있는 기능이다.
1. 사용이유
여러개의 쓰레드를 생성 후 병렬로 작업처리시 각각의 쓰레드들은 다른 쓰레드의 작업을 기다리지 않고 수행하게 된다.
이 때 countDownLatch를 사용하면 일정 개수의 thread가 끝나야만 특정 thread를 실행시켜 통제 해준다.
2.사용방법
[A라는 mainThread에서 B,C Thread가 실행된 후 B,C가 종료되고 난 후에 A Thread에서 남은 작업을
하도록 만들겠다.
1.Main Thread에 CounterDownLatch 초기화시 정수값count를 넣어준다.
2. B,C Thread 마지막에 countDown()를 호출한다. => count를 1씩 줄인다.
3. MainThread에 어느 시점에 await() 메서드를 넣어준다.
4. CountDown시 1씩 줄어들며 count값이 0이라는 숫자가 되면 Latch(게이트)역할을 하면서 await상태가 열린다.
+await()Time메서드는 만약 B,C등에서 오류가 생기면 await가 무한대기할 수 있기때문에 대기시간을 지정하는 방법이다.
반응형