프로세스와 쓰레드

강진구·2024년 3월 28일

JAVA고급

목록 보기
3/4

프로세스

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

프로세스의 작업 단위

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

프로세스 구조

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

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

쓰레드

쓰레드는 프로세스내에서 일하는 일꾼(코드실행의 흐름)

  • 쓰레드의 생성

    프로세스가 작업중인 프로그램에서 실행요청이 들어오면 쓰레드(일꾼)을 만들어 명령을 처리

  • 쓰레드의 자원

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

JAVA의 쓰레드

일반 쓰레드와 동일하지만 JVM프로세스 안에서 실행되는 쓰레드를 말한다

  • Java 프로그램 쓰레드는 Java Main 쓰레드부터 실행되며 JVM에 의해 실행

profile
기록하고,발전하자

0개의 댓글