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

surfaceDestroyed에서 Thread와 while (done) {} 질문

0 추천
public void surfaceDestroyed(SurfaceHolder holder) {
 
boolean done = true;  
 
           while (done) {
        try {
            mThread.join();              
                   done = false;
               }catch (InterruptedException e) {  
           } 
 }
 
서피스뷰에서 서핏피부셔질 때 모두 위와같이 하더군요.
아래와 같이 하면 스레드 동기화에 문제가 있나요?
 
public void surfaceDestroyed(SurfaceHolder holder) {
boolean done = true;  
        try {
            mThread.join();    
               }catch (InterruptedException e) {             
 
 }
초보 눈에는 위나 아래나 같아 보입니다.
타드이별펍 (440 포인트) 님이 2015년 2월 14일 질문

1개의 답변

0 추천
스레드도 시스템자원이므로 끝날때 확실하게 끝내주는것이 좋지요

mThread.join(); 은 해당 스레드가 끝날때까지 기다려주는 역활을 합니다.

자세한것은 아래 참조하시공

http://alecture.blogspot.kr/2011/05/join.html
nicehee (73,100 포인트) 님이 2015년 2월 15일 답변
boolean done = true; While(done) {~~~ ;done = false;} 이면
그냥 While(true) {~~~ ; break;} 이고
다시 while 없이 ~~~로 쓰면 끝아닌지요?
...