Thread
쓰레드는 작업 흐름으로
기본적으로 MainThread에서 작업이 이루어 진다
MainThread만 있는 경우에는 한번에 하나의 일만 할 수 있다
다른 쓰레드가 있는 경우에는 여러가지 일을 한번에 할 수 있다
안드로이드 MainThread
안드로이드의 MainThread는 UI(User Interface) Thread이며
이는 사용자의 input을 받는 쓰레드이다
UI Thread는 절대 정지시킬 수 없다
정지 시키거나 종료 시키면 더 이상 사용자의 input을 받을수 없기 때문이다
Thread 만들기
쓰레드를 만들어 보자
이제 쓰레드가 할 일을 Runnable담아서 쓰레드에 넣어 주면된다
현재까지는 쓰레드가 할일을 가지고 있는 상태이다
일을 시작하라는 명령 줘야한다
버튼 누를 때마다 쓰레드가 실행되도록 해봤다
쓰레드를 만들자마자 바로 실행 시킬 수도 있다
마지막 쓰레드는 lambda방식으로 구현해본 것이다
쓰레드에 sleep 사용할 수 있다
2초 뒤에 버튼 색을 바꾸는 쓰레드를 실행시켜 보았다
이러면 에러가 난다
뷰를 만든 쓰레드만이 뷰를 건들수 있다
UI관련 제어는 메인 쓰레드(UI 쓰레드)만이 할 수 있기 때문에
다른 쓰레드에서 뷰를 건들 수 없다
runOnUiThread
메인쓰레드에서 돌아가는 쓰레드이다
다른 쓰레드에서 UI 건들고 싶으면 이것을 사용하면 된다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.