2012-10-19 1 views
0

JDBC SQL 결과의 업데이트를 위해 두 개의 스레드를 생성 한 주 기능이 있습니다. 독점적으로 작업하는 자식 스레드는 무한 루프에 있으며 5 분 후에 결과를 업데이트합니다. 주 스레드를 빠져 나오기 전에, 아이 트레드를 죽여야합니다.주 스레드를 떠나기 전에 안전하게 자식 스레드 (infinte 루프)를 종료합니다.

그 중 가장 좋은 절차는 무엇입니까? 그래서

답변

1

난 당신의 코드는 다음과 같이 가정 :

class ThreadTask implements Runnable { 
    public void run() { 
     while(true) { 
      ... 
     } 
    } 
} 

당신이 할 수있는 것은 플래그 구현할 수 있습니다 :

ThreadTask task = new ThreadTask(); 
Thread t = new Thread(task); 
t.start(); 
... 
task.stopTask(); 
t.join(); 
+0

해야합니까 : 메인 스레드에서 다음

class ThreadTask implements Runnable { private volatile boolean shouldStop = false; public void run() { while(!shouldStop) { ... } } public void stopTask() { shouldStop = true; } } 

을 변수에 잠금을 사용해야합니다 shouldStop –

+0

문제는 없지만 volatile 키워드를 검색했습니다. 그것은 그것을 돌보고 있습니다. 감사합니다. –

+0

@Prannoy Mittal : 코드가 효과가 있습니까? – Tudor

관련 문제