2012-11-09 2 views
0

내 작업은 두 스레드 (특정 횟수만큼 특정 횟수만큼 증가하는 카운터)가 끝난 공유 카운터를 표시하는 것입니다. 따라서 첫 번째 스레드가 완료되면 카운터가 표시되고 두 번째 스레드가 완료되면 카운터가 다시 표시됩니다.스레드가 완료된 후 공유 카운터 표시

나는 이미 카운터 클래스와 countingThread 클래스를 만들었고, 그들은 공유 카운터를 표시하는 것이 좋다고 생각한다.

내 테스트 클래스는 그들이 내가() 또는으로 isAlive()에 가입 사용합니까 완료 한 후 지금까지

public static void main() throws InterruptedException{ 
    Counter counter = new Counter();  
    Thread inc = new CountingThread(counter, +1); 
    Thread dec = new CountingThread(counter, -1); 

    inc.start(); 
    dec.start(); 
} 

입니까? 그렇다면 어떻게해야합니까?

+1

그래, 당신은 스스로 대답 ... 당신은 thusly 히 "스레드 객체"에 전화 즉, 인스턴스 메서드 인'조인()'방법, 사용'inc.join을()' ... 그리고 분명히'dec'과 동일합니다. 포럼에서 묻는 것보다 훨씬 빨리 API doco (http://docs.oracle.com/javase/6/docs/api/에있는 온라인)에서이 작은 factiod를 볼 수 있으며 포럼을 사용하여 적어도 당신이 문서를 groc하려고 시도한 것을 이해하지 못하는 것에 대해 물어보십시오 ;-) – corlettk

답변

1

join을 사용하여 메인 스레드가 inc 및 dec 스레드가 작업을 마칠 때까지 기다리고 싶습니다.

inc.start() // starts inc thread 
dec.start() // starts dec thread 

inc.join() // Tells main/this thread to wait for inc thread to finish 
dec.join() // Tells main/this thread to wait for dec thread to finish 
관련 문제