카테고리 없음

[JAVA] CountDownLatch

jojelly 2023. 11. 1. 13:47
반응형

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가 무한대기할 수 있기때문에 대기시간을 지정하는 방법이다.







반응형