프로세스 2

안드로이드 - 외부 스레드에서 UI 스레드로

최근 취업준비를 하면서 개인 안드로이드 프로젝트를 연습삼아 진행하고 있습니다. 하면서 계속 깨닫는 건 멀티스레딩의 중요성입니다. 아무리 튼튼한 자료구조가 있고 복잡한 알고리즘의 빅오가 기가막혀도 기본 스레드(UI 스레드)에서만 작동한다면 ANR이 발생하기 마련입니다. 기본 스레드에선 UI만 다루고, 사용자 눈에 보이지 않는 모든 작업은 뒤에서 적절히 스레드를 줘서 돌려야 스무스하게 아무 일 없는 듯 돌아갈 겁니다. 비록 폰은 뜨거워져도 보기엔 부드러워야 좋다고 생각합니다. 그래서 개발을 진행하기 보다, 머릿속으로 먼저 정리할 겸 포스팅하고 있습니다...... [들어가기 앞서...] 안드로이드는 리눅스 기반 운영체제입니다. 따라서 안드로이드는 리눅스의 정책을 따라갈 것이고, 리눅스의 프로세스와 스레드에 대..

리눅스의 프로세스와 쓰레드

아래 내용에서 잘못된 점은 꼭 알려주세요 [프로세스와 쓰레드] 먼저 프로세스와 쓰레드의 의미는 다음과 같습니다. 프로세스(Process)는 프로그램 하나가 실행될 때 쓰이는 단위입니다. OS로부터 메모리 공간을 할당받고, 스케쥴링 될 수 있습니다. 쓰레드(Thread)는 프로세스 안의 작은 작업 단위입니다. 따라서 프로세스는 작업을 위해 최소 하나 이상의 쓰레드가 있어야 합니다. 쓰레드는 여러개가 존재할 수 있고, 프로세스의 메모리 자원을 공유할 수 있으며, 때문에 하나의 자원에 여러 쓰레드가 달려들 때 일어날 수 있는 동기화 문제를 신경써야 합니다. 자기 자신만의 스택을 가질 수 있습니다. 다시 말해 프로세스는 그저 프로그램이 메모리에 로드되어 있고, 실행(스케쥴링)될 수 있다는 그 자체로 봅니다. 여..