자바 - 프로세스와 쓰레드

민태영·2024년 4월 25일
0

1. 프로세스란

운영체제로부터 자원을 할당받는 작업의 단위 즉 현재 실행 중인 프로그램을 의미 한다.

  • 예를들어 윈도우에서 카카오톡, 인터넷브라우저, 자바프로그램을 실행했을 때 각 실행중인 프로그램들은 프로세스라는 이름으로 운영체제위에서 실행된다.

  • 크롬브라우저를 2개 띄우면 크롬브라우저 프로세스도 2개가 띄워진다.

2. 쓰레드란

프로세스가 할당받은 자원을 이용하는 실행의 단위
즉 노예다. 싱글쓰레드는 일하는 노예가 하나 멀티쓰레드는 일하는 노예가 다수

2-1 쓰레드의 생성

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

  • 쓰레드의 자원 프로세스 안에는 여러 쓰레드들이 있고 쓰데르들은 실행을 위한 프로세스 내 주소공간이나 메모리공간을 공유 받는다.

  • 쓰레드들은 각각 명령처리를 위한 자신만의 메모리공간을 할당받는다.

3. 프로세스 구조

할당 받은 프로세스에는 크게 3가지로 구성되어있다.

  • Code : 자바의 main메소드와 같은 코드를 의미
  • Data : 프로그램이 실행 중 저장 할 수 있는 저장공간을 의미
    예) 전역변수, 정적변수, 배열 등 초기화된 데이터를 저장하는 공간
  • 메모리영역 : 메모리영역도 2가지 영역으로 이루어져있다.
    1) Stack : 메서드안의 지역변수나 매개변수 리턴변수 등을 저장하는 공간
    2) Heap : 프로그램이 동적으로 필요한 변수를 저장하는 공간 new(), mallock()

4. JAVA에서의 쓰레드

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

  • Java프로그램을 실행하였을 때 JVM프로세스위에서 실행
  • Java프로그램 쓰레드는 Java Main(Main메서드)쓰레드부터 실행되며 JVM에 의해 실행된다.
profile
꿈을 꾸는 개발자

0개의 댓글