Java : 프로세스와 쓰레드

커비·1일 전
0

Java

목록 보기
55/55

프로세스

운영체제로부터 자원을 할당받는 작업의 단위

프로세스 작업 단위

  • 실행중인 프로그램을 의미함
  • 예를 들어 Java프로그램을 실행시키면 이 프로그램은 프로세스라는 이름으로 운영체제 위에서 실행됨
  • OS 위에서 실행되는 모든 프로그램은 OS가 만들어준 프로세스에서 실행됨
    : 카카오톡, 브라우저, JAVA프로그램 모두 프로세스로 실행되며 크롬 브라우저를 2개 띄우면 크롬 브라우저 프로세스도 2개가 띄워진 것임

프로세스 구조

OS가 프로그램 실행을 위한 프로세스를 할당해줄 때 프로세스 안에 프로그램 Code와 Data 그리고 메모리 영역(Stack, Heap)를 함께 할당해줌

  1. Code는 Java main 메소드와 같은 코드를 말함
  2. Data는 프로그램이 실행 중 저장할 수 있는 저장공간을 의미함
    : 전역변수, 정적변수(static), 배열 등 초기화된 데이터를 저장하는 공간
  3. Memory(메모리 영역)
    Stack : 지역변수, 매개변수 리턴 변수를 저장하는 공간
    Heap : 프로그램이 동적으로 필요한 변수를 저장하는 공간

각 프로그램은 프로세스를 통해 Code, Data, Memory(Stack, Heap)을 OS로부터 할당받음


쓰레드

프로세스가 할당받은 자원을 이용하는 실행의 단위
: 프로세스 내에서 일하는 일꾼(코드실행의 흐름)이라고 생각하면 됨

쓰레드의 생성

  • 프로세스가 작업중인 프로그램에서 실행요청이 들어오면 쓰레드를 만들어 명령을 처리하도록 함

쓰레드의 자원

  • 프로세스 안에는 여러 쓰레드들이 있고 쓰레드들은 실행을 위한 프로세스 내 주소공간이나 메모리공간(Heap)을 공유받음
  • 추가로 쓰레드들은 각각 명령처리를 ㅜ이한 자신만의 메모리공간(Stack)도 할당받음

Java 쓰레드

일반 쓰레드와 동일하며 JVM 프로세스 안에서 실행되는 쓰레드를 말함

  • Java프로그램을 실행하면 앞서 배운 JVM 프로세스 위에서 실행됨
  • Java프로그램 쓰레드는 Java Main 쓰레드부터 실행되며 JVM에 의해 실행됨
profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글