마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Thread를 사용하고 나면 꼭 종료시켜줘야 하나요?

0 추천
궁금합니다.

 

현재 버튼을 눌렀을때

쓰레드가 실행되서 어떤 작업이 처리되게 로직을 잡아놨습니다.

버튼이벤트시

Thread th = new (러너블객체);

th.start();

이렇게 말이죠.

 

근데 쓰레드를 멈추는 작업을 별도로 해줘야 하는지 궁금합니다.

막 쓰레드가 계속 쌓일까봐요;;
갸아악 (21,260 포인트) 님이 2013년 4월 25일 질문
run 메소드 안의 구성을 어떻게 하느냐에 따라 달라집니다. 지속적으로 처리하기 위하여 루프로 구성하였다면 당연히 종료를 해주셔야 합니다.
그 외라면 일반 메소드처럼 끝까지 수행하고 종료됩니다.

3개의 답변

+1 추천
run() 메서드가 마지막줄까지 다 실행되었다면 상관 없습니다.

아니라면 적절한 때에 interuppt를 걸어 줘야 합니다.
퐁풍 (8,740 포인트) 님이 2013년 4월 25일 답변
0 추천
thread 안에 수행부분이 탈출조건없이 무한반복에 빠지면 계속 쌓입니다
익명사용자 님이 2013년 4월 25일 답변
–1 추천
protected static boolean bRunThread = true;

public static void main(String[] args) {
  // TODO Auto-generated method stub

Thread thread = new Thread(new Runnable() {      
   private int number = 1;

   @Override
   public void run() {
    // TODO Auto-generated method stub
    while(bRunThread){ <--- 루프를 도는 쓰레드
     System.out.println(number++);
     if(number == 10)
      bRunThread = false; <-- 루프를 종료 하는 방법
    }
   }
  });
  thread.start();
}
쓰레드는 원레 자동적으로 종료되지만, 루프를 도는 쓰레드는 while(bRunThread) 처럼 인지값에 boolean이나 int 같은 값으로 되어있어야 쓰레드를 정상적으로 종료 시킬 수 있습니다.
센스가이 (2,010 포인트) 님이 2013년 4월 29일 답변
...