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);

}


 


저작자 표시 비영리 변경 금지
신고

WRITTEN BY
RevFactory
REV는 '향상시키다' 의미를 지니고 있습니다. 이곳은 Rev Factory 입니다! Kakao Developer

받은 트랙백이 없고 , 댓글이 없습니다.
secret