• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94
Android

[안드로이드] 프로세스와 스레드의 차이점

[안드로이드] 프로세스와 스레드의 차이점
Android

[안드로이드] 프로세스와 스레드의 차이점

2020. 11. 30. 21:51

프로세스와 스레드의 차이점

프로세스는 애플리케이션이 실행될 때 운영체제로부터 자원을 할당받고,

스레드는 한 프로세스 내에서 동작되는 실행의 흐름 단위로써 프로세스가 할당받은 자원을 같은 프로세스 내의 스레드끼리 공유하면서 실행된다.

안드로이드는 한 프로세스당 최소 하나의 메인 스레드를 기본으로 가지고, 서브 스레드를 추가할 수 있다.

여기서 말하는 자원은 CPU 시간, 주소 공간, Stack, Heap, Data, Text의 구조로 되어있는 메모리 영역이다.

 

스레드는 왜 쓰는걸까

운영체제 입장에서 시스템의 자원을 효율적으로 관리하기 위해 스레드를 사용한다.

멀티 프로세스로 실행되는 것보다 하나의 프로세스에 필요한 자원을 할당하고 실행할 작업을 더 작은 실행 흐름 단위인 스레드로 쪼개는 게 시스템 콜(call)의 빈도가 줄어들어 자원을 더 효율적으로 관리하게 된다.

또한 멀티 프로세스 환경에서의 프로세스 간의 통신 비용보다 한 프로세스 내부의 멀티 스레드끼리의 통신 비용이 더 적다.

하지만 멀티 스레드 간의 자원 공유는 전역으로 사용되므로 동기화로 발생할 수 있는 오류에 주의해야 한다.  

 

'Android' 카테고리의 다른 글

[안드로이드] Room  (0) 2021.03.17
[안드로이드] MVC, MVP, MVVM 아키텍처 패턴  (0) 2021.03.17
[안드로이드] Androidx에서 File 공유하기  (0) 2020.12.15
[안드로이드] Invoke-customs are only supported starting with Android O (--min-api 26) 에러 해결 방법  (0) 2020.12.04
[안드로이드] 안드로이드 4대 컴포넌트  (0) 2019.04.15
  • 프로세스와 스레드의 차이점
  • 스레드는 왜 쓰는걸까
'Android' 카테고리의 다른 글
  • [안드로이드] MVC, MVP, MVVM 아키텍처 패턴
  • [안드로이드] Androidx에서 File 공유하기
  • [안드로이드] Invoke-customs are only supported starting with Android O (--min-api 26) 에러 해결 방법
  • [안드로이드] 안드로이드 4대 컴포넌트
MJ_94
MJ_94
안드로이드, 개발 관련 기술 블로그

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.