-
thread, handler, callback개발 지식 2022. 6. 8. 11:50
* thread
- 프로그램 수행시 프로세스 내부에 존재하는 일련의 실행 코드.
- 멀티태스킹 : 하나의 운영 체계에서 다수의 프로세스가 동시에 실행되는 환경
- 멀티스레딩 : 하나의 프로세스 내에서 다수의 스레드가 동시에 실행되는 환경
- 동시 작업을 위한 하나의 실행 단위
- 앱을 실행하면 메인 스레드가 시작되고, 해당 스레드는 앱의 기본 실행을 담당. UI 스레드라고도 부름.
- 임의의 스레드는 메인 스레드의 역할과 유관한 리소스에 접근할 수 없다. 여러 스레드가 동시에 하나의 리소스에 접근할 경우, 시스템에서 어떤 스레드의 작업을 먼저 처리할지 모르기 때문.
- 따라서, 임의의 스레드는 UI 부분을 다룰때 핸들러를 통해 접근한다.
* handler
- 각각의 스레드 안에 만들어질 수 있다.
- 다른 스레드에서 요청하는 정보를 메세지 큐를 통해 순서대로 실행시켜 준다.
- 리소스에 대한 동시 접근 문제를 해결한다.
* handler 사용방법
1) obtainMessage() : 호출의 결과로 메시지 객체를 반환받는다.
2) sendMessage() : Message Queue에 필요한 작업을 넣는다.
3) handleMessage() : 메소드에 정의된 기능이 수행된다.
* callback
작업 요청받은 스레드가 작업이 끝나면 요청한 스레드에게 작업종료를 알리는 함수
'개발 지식' 카테고리의 다른 글
Program, Process, Thread (0) 2022.08.19 멀티스레드 서버에 코루틴 얹기 (0) 2022.06.08 [개발 지식] 데이터와 주소 (0) 2022.04.08 [개발 지식] 컴파일, 링크, 디버그, 빌드 (0) 2022.04.07 [개발 지식] C/C++ 외부 라이브러리 dll/lib 차이점 (0) 2022.04.07