2012-05-28 3 views
0

다음과 같은 경우를 생각해 호출 중단 :는 RMI에서 차단 된 스레드가

main() { 
    ClassA insA = new ClassA(); 
    insA.run(); 
} 

ClassA.run() { 
    for(;;) { 
     RMI.call(); 
     blahblah(); 
    } 
} 

RMI.call()이 발생 블록 (다른 스레드에서) 뭔가까지 Semaphore.acquire()를 사용하여 스레드를 RMI 기능입니다.

질문 : 안전하게 모든 스레드를 죽일 수 있습니까?

stop() { 
    Thread.currentThread.interrupt(); 
} 

을하고 RMI 호출 스레드를 중단하지 것이다 외부 (예컨대 main())에서 호출 :

아래와 같이 ClassAstop() 함수를 정의.

원래 스레드를 인터럽트하여 코드를 올바르게 종료 할 수 있습니까?
다른 방법으로 안전하게 종료 할 수 있습니까?

답변

관련 문제