[Android] 현재 쓰레드가 메인 쓰레드인지 확인하는 법

2021. 2. 7. 21:52·안드로이드

현재 쓰레드가 메인 쓰레드인지 확인하는 법

 

2021-09-05 추가

Logger 라이브러리를 사용할 것을 권장드립니다.

 

 

GitHub - orhanobut/logger: ✔️ Simple, pretty and powerful logger for android

✔️ Simple, pretty and powerful logger for android. Contribute to orhanobut/logger development by creating an account on GitHub.

github.com

 

로그캣 에서 간단하게 확인하기

 

로그캣에 빨간 네모박스를 보시면

1138-1138

혹은 1138-1144 라고 찍히고 있는데

4자리의 숫자 2개가 의미하는 것은 앞부터 차례대로 

ProcessID, ThreadID 입니다. (이하 PID, TID)

 

1138-1138과 같이 PID와 TID가 같으면 메인 쓰레드에서 실행 되고 있는 것 이고,

1138-1144과 처럼 서로 다르면

1144라는 ID를 가지고있는 다른 쓰레드에서 실행되고 있는 것 입니다.

 

 

Looper를 비교해서 확인하기

 

원하는 코드 위치에서 Looper객체를 확인하면

지금 실행되는 코드가 메인쓰레드에서 실행되는지

메인 쓰레드가 아닌 다른 쓰레드에서 실행되는지 확인이 가능합니다.

Java

public void checkMainThread() {
	//Looper.myLooper() == Looper.getMainLooper()
	// true: 메인 쓰레드(O), false: 메인쓰레드(X)
	Log.d(TAG, "isMainThread" + Looper.myLooper() == Looper.getMainLooper());
}

Kotlin

fun checkMainThread() {
	//Looper.myLooper() == Looper.getMainLooper()
	// true: 메인 쓰레드(O), false: 메인쓰레드(X)
	Log.d(TAG, "isMainThread ${Looper.myLooper() == Looper.getMainLooper()}")
}

저는 라이브러리를 사용할 때 비동기작업이 필요하다면,

라이브러리 내부로직에 비동기 처리가 되어있는지 확인 후

안되어 있다면 비동기처리를 직접 해주기 위해서 사용합니다.

 

'안드로이드' 카테고리의 다른 글

[Android] 안드로이드 고유 식별자 (unique identifiers)  (0) 2021.03.24
[Android] 웹뷰 히스토리 스택 얻는 방법  (1) 2021.03.23
[Android] Release 모드로 빌드하기  (0) 2021.03.22
[Android] 중복 클릭 방지 하기  (0) 2021.03.22
[Android] 데이터 바인딩 적용법 변경사항  (0) 2021.03.10
'안드로이드' 카테고리의 다른 글
  • [Android] 웹뷰 히스토리 스택 얻는 방법
  • [Android] Release 모드로 빌드하기
  • [Android] 중복 클릭 방지 하기
  • [Android] 데이터 바인딩 적용법 변경사항
Been
Been
  • Been
    Been
    Been
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 언어 (0)
        • Kotlin (0)
      • 안드로이드 (17)
      • iOS (3)
      • Git (1)
      • 스터디 (39)
        • 알고리즘 문제 풀이 (1)
        • 99클럽 코테 스터디 TIL (38)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    항해99
    쓰기권한
    IOS
    EditText
    Git
    maxWidth
    RecyclerView
    FragmentStateAdapter
    TIL
    Android
    WRITE EXTERNAL
    언더라인 제거
    코딩테스트준비
    아이폰
    개발자취업
    Androiod
    99클럽
    깃
    debugRuntimeClasspath
    리싸이클러뷰
    java
    Coroutines
    AndroidID
    안드로이드
    nsl
    자바
    객체변환
    NSR
    풀이실패
    밑줄제거
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Been
[Android] 현재 쓰레드가 메인 쓰레드인지 확인하는 법
상단으로

티스토리툴바