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

Thread 메모리에서 해제.

0 추천

어떠한 스레드를 구현하였고,

public class ThreadTEST extends Thread

이 쓰레드에서 

public void run()...

을 구현하여 Handler와 함께 사용중입니다.

 

궁금한 것이있는데, 해당 스레드의 코드가 종료되면(run()의 코드가 끝까지 다 실행되어 더이상 실행할 코드가 없을때)

자바의 GC가, 쓰레드가 점유하고있던 메모리를 다시 환수해가는 것을 보장하나요?

왜냐하면...서비스에서 일정시간 간격으로 계속 생성해서 돌려야 하는데,

GC가 보장해주지 않는다면, 수동으로 스레드를 메모리에서 해제하려고 합니다.

 

다만...찾아보니 수동으로 메모리에서 해제를 할때의 방법도 완벽히 보장된 방법이 아니더라구요.

그래서 GC에서 메모리를 전부 해제하는것을 보장만 한다면

따로 수동으로 해제하지 않고 냅두고 싶은데요..

 

고견 부탁드립니다..^^ 감사합니다.

안드로이드로우 (15,740 포인트) 님이 2014년 11월 13일 질문

1개의 답변

+1 추천
 
채택된 답변
객체를 누구도 참조하지 않는다면 GC 대상이되지만 NULL이라고 바로 메모리 해제가 되는건 아니라고 알고 있습니다

쓰레드에서만 사용하는 객체이고 그 쓰레드가 중지되었다면 메모리는 해제되겠지요 그 객체를 다른곳에서 참조하지 않는이상 언젠가는 해제 될겁니다 그시기는 VM이 판단 하겠지만요..

어차피 수동으로 GC를 보장 받지 못하니 쓰레드의 객체를 다른곳에서 참조하지 않도록 개발을 한다면 메모리 걱정은 없지 않을까 하네요...

GC관련된 좋은글이 있네요

http://helloworld.naver.com/helloworld/textyle/329631

참고하시면 좋을듣
서영아빠 님이 2014년 11월 13일 답변
안드로이드로우님이 2014년 11월 16일 채택됨
좋은 답변 너무감사합니다.
제가 원하는 답이어요^^..
...