ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (6주차 38일) 스레드
    수업 내용 정리 2024. 6. 19. 10:16

    Java

    스레드(Thread)

    > 스레드

    • 프로세스
      1. 운영체제에서 실행 중인 하나의 프로그램(애플리케이션)이다.
      2. 프로그램이 실행될 때 마다 개별적으로 생성된다.
      3. 하나의 프로그램(애플리케이션)은 다중 프로세스를 만들기도 한다.
    • 스레드
      1. 프로세스 내에서 할당된 자원을 이용해 실제 작업을 수행하는 작업 단위이다.
      2. 모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다.
      3. 하나의 스레드는 하나의 코드 실행 흐름이기 때문에 한 프로세스 내에 여러 개의 스레드가 존재한다면 여러 개의 실행 흐름이 생긴다는 의미이다.
    • 메인 스레드
      1. 모든 자바 프로그램(애플리케이션)은 메인 스레드가 main()메소드를 실행하면서 시작된다.
      2. 메인 스레드는 main() 메소드의 첫 코드부터 아래로 순차적으로 실행되고, 코드를 모두 실행하거나 return 문을 만나면 프로그램(애플리케이션) 실행이 종료된다.
      3. 메인 스레드는 필요에 의해 작업 스레드를 만들어서 병렬로 코드를 실행할 수 있다.

    > 멀티 스레드

    • 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 것을 말한다.
      1. 자바 프로그램(애플리케이션)은 메인 스레드가 종료되면 프로세스도 종료되지만 멀티 스레드 프로그램(애플리케이션)의 경우 실행 중인 스레드가 하나라도 있다면 프로세스가 종료되지 않는다.
      2. 멀티 스레드 프로그램(애플리케이션)은 하나의 프로세스 내부에 여러 개의 스레드가 생성되기 때문에 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있다.