stack: 지역변수, 매개변수, 복귀 번지 등이 저장되어 있는 프로그램이 자동으로 사용하는 임시 메모리
heap: 프로그래머가 동적으로 사용하는 영역. 메모리 할당, 반환되는 영역
data: 전역변수, 정적변수, 배열, 구조체
code: 작성한 코드가 들어가는 부분
자바에는 프로세스가 존재하지 않고 스레드만 존재한다.
자바 스레드는 JVM에 의해 스케줄되는 실행 단위 코드 블록이다.
ContextSwitching: CPU에서 여러 프로세스들이 돌아가면서 작업을 처리하는 과정
자원 효율성 증가
: 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어 자원 효율이 좋다.처리 비용 감소
: 스레드 사이의 작업량이 작아 ContextSwitching이 빠르고 통신 방법이 간단해서 자원 소모가 줄어든다.응답 시간 단축
: 자원 공유가 가능해 통신에 부담이 적고, 간단한 통신 방법으로 응답 시간 단축멀티 프로세스 대신 멀티 스레드를 사용하는 이유는 스레드의 장점이라고 생각하면 된다.
자원 효율성 증가
: 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어 자원 효율이 좋다.처리 비용 감소
: 스레드 사이의 작업량이 작아 ContextSwitching이 빠르고 통신 방법이 간단해서 자원 소모가 줄어든다.응답 시간 단축
: 자원 공유가 가능해 통신에 부담이 적고, 간단한 통신 방법으로 응답 시간 단축https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html