0
다른 스레드 B를 실행하는 스레드 A가 있습니다. 스레드 A는 스레드 B를 정상적으로 종료하려고 시도하는 "stopExec()"메소드를 구현하여 일부 작업을 완료하도록합니다. 그래서 내 stopExec 방법은 다음과 같이 보입니다 :기다리는 동안 CountDownLatch 예외가 발생합니다.
private CountDownLatch lock;
public void stopExec() {
lock = new CountDownLatch(1);
threadB.finish();
try {
lock.await();
} catch(InterruptedExcetion ie) {
Log.d(null, "Thread A not locked.");
}
Log.d(null, "Finished.");
}
스레드 B가 스레드에 대한 참조를 가지고와 그것을 호출 "threadA.lock.countDown를();" 그 일이 무엇이든간에 끝났을 때.
예외가 발생하는 상황은 ... 스레드 A는 대기하지 않고 단순히 계속됩니다. 누군가가 왜/내가 뭘 잘못하고 있는지 설명 할 수 있습니까? 다른 경우에도 CountDownLatch를 비슷한 방식으로 사용했으며 예상대로 작동합니다.
감사합니다.
태그 'android'을 (를) 제거했습니다.이 질문은 ** android ** – Andremoniy
에 대한 스레드 코드를 표시하지 않습니다. – Blackbelt
threadA 코드도 표시합니다. – Blackbelt