백엔드기술/개발언어
CountDownLatch을 이용하여 Thread 사용시 모든 쓰레드 종료 기다리기
RevFactory
2013. 9. 24. 11:44
CountDownLatch 을 사용하면 멀티 쓰레드 사용시 모든 쓰레드 종료 시점을 알 수 있다.
간단한 예제 코드
private static AtomicInteger _nextInc = new AtomicInteger(
(new java.util.Random()).nextInt());
final List<Integer> list = Collections.synchronizedList(new ArrayList<Integer>()); final CountDownLatch latch = new CountDownLatch(10000);
for(int i = 0 ; i < 10000 ; i++) { Thread thread = new Thread() { public void run() { list.add(_nextInc.getAndIncrement() & 0xFF); latch.countDown(); } };
thread.start(); }
try { latch.await(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Collections.sort(list); for(int n : list) { System.out.println(n); }
|