← 질문 목록
#70깊이 0

비동기로 옮겼는데도 왜 응답 없음이 생기는가?

모바일심화비동기

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

작업을 다른 스레드로 보냈어도 메인 스레드가 결과나 잠금을 기다리면 막히기 때문이다. 느린 Binder 호출과 과도한 그리기도 입력 처리를 지연시킨다.

  1. 사용자→메인 Looper

    입력 이벤트를 보낸다

  2. 메인 Looper→작업

    결과나 잠금을 기다린다

  3. 시스템→앱

    기한 내 응답이 없어 ANR을 기록한다

메인 스레드는 입력과 생명주기 콜백과 화면 갱신을 직렬로 처리한다. 입력 이벤트에 약 5초간 응답하지 못하면 입력 디스패치 ANR이 날 수 있다.

스택 덤프에서 main의 대기 지점을 찾고 잠금 보유 스레드도 따라간다. StrictMode와 Perfetto로 I/O와 느린 Binder 호출을 확인한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

비동기로 옮겼는데도 왜 응답 없음이 생기는가?