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

스레드쪽을 전문적으로 배운게 없어 이렇게 문의드립니다.

0 추천

스레드쪽을 전문적으로 배운게 없어 이렇게 문의드립니다.

private void thread5(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    if(stIsThread_IndexPage){
                        //할일
                    }
                }
            }
        }).start();
    }

 

이런식으로 thread1~5를 만들어서 작업하고있습니다.

저렇게 만들면 메인스레드가 아니라 별로 스레드라고 생각하고있었는데

 

Skipped 40 frames!  The application may be doing too much work on its main thread.

 

이렇게 에러가 뜨는군요....

 

물론 전체소스와 클래스들은 핸들러를 이용하여, 어떤작업을 하고있습니다.

 thread1~5를 1개만 쓰면 괜찮은데

 

6개정도 더 만들어서 사용하니

위와같은 Skipped 71 frames!  The application may be doing too much work on its main thread.

반응이구, 느려지는군요..

 

new Thread(new Runnable() {


는 메인 스레드인가요?

메인스레드도 아닌데 왜  ipped 71 frames!  The application may be doing too much work on its main thread.

이런 문구가 나오는지 궁금합니다 ㅠ

 

메인스레드와 멀티스레드를 여러개 쓰고싶은데 어떻게 해야할지 조언도 부탁드려요 ㅠ

관련 정보나, 스레드 사용팁, 사용경험 ...많은 가르침 부탁드립니다. ㅠㅠ

뇽뇽이2841 (1,120 포인트) 님이 2015년 12월 2일 질문

2개의 답변

0 추천
저 코드만 봐서는 별도 스레드로 돌아가는게 맞습니다.

메인스레드에서 뭔가 작업하는게 있을 것 같습니다.
익명사용자 님이 2015년 12월 2일 답변
답변 감사합니다 ㅎㅎ 메인스레드랑 별도 스레드 2~3개까지는 괜찮은데 한 6개를 쓰니까 메인스레드가 일을 많이한다고 경고를 하네요 ㅠ
0 추천
별도의 쓰레드라도 하나의 프로세스에서 돌아가게 되어있습니다.

당연히 하나의 프로세스에 너무 많은 쓰레드가 존재하면 느려지는건 당연하구요~~!

쓰레드를 줄여 보시던지 서비스를 이용하심이 좋아 보입니다.
ThisPlus (46,920 포인트) 님이 2015년 12월 2일 답변
아..스레드를 많이쓰면 느려지는군요..일을 나눠서 적당히 돌아가겠지했는데 아닌가보네요..하 ㅠ
...