Thread

임채환·2024년 9월 10일

Thread

목록 보기
2/6
post-thumbnail

Thead

  • 스래드란 프로세스 내에서 실행되는 여러 개의 실행 단위로,경량화 프로세스라고 불린다.
  • 한 프로그램은 하나의 Thread에서 실행되지만,프로그래밍 환경에 따라서 하나 이상의 스레드를 실행 할 수 있다.
  • 한 프로세스 내에서 동작하는 여러 실행 흐름으로 프로세스 내의 주소 공간이나 자원을 공유 할 수 있다.
  • 각각 Thread는 독립적인 작업을 수행함으로써 각자의 stackrhk pc register값을 가지고있다.

Thread의 특징

  • 독립된 Stack
    • stack은 method 호출시 전달되는 인자,되돌아갈 주소 값 등을 저장하기 위해 사용되는 메모리 공간입니다.
    • 즉 stack 메모리가 독립적으로 동작함으로써 독립적인 함수 호출이 가능하며 독립적인 실행 흐름을 가져 갈 수 있습니다.
  • 독립적인 할당 PC Register
    • register 값은 Thread 명령어의 어디까지 수행했는지를 기억하고 있습니다.
    • Thread는 CPU를 할당 받았다가 스케줄러에 의해서 다시 선점 당하게 됩니다.
    • 그렇기 때문에 명령이 연속적으로 수행되지 못하고 일정 부분 수행 후 다시 수행하기 위해서는 어느 부분까지 수행했는지 기억해야하기 때문에 PC Register를 독립적으로 할당합니다.

함수가 호출될 때마다 스택 프레임이 생성되고, 이 스택 프레임은 스레드의 스택에 저장됩니다.

스택프레임에는 함수 실행에 필요한 다양한 정보(메서드 호출인자,지여변수,리턴 주소등)포함되고 함수호출이 종료되면 해당 스택 프레임이 스택에서 제거됩니다.각 스레드는 독립적인 스택을 가지기 때문에 다른 스레드에 영향을 미치지 않습니다

Thread의 생성

  • Thread클래스 상속
  • Runnable 인터페이스 구현(권장)
    - 다른 클래스를 상속해야하는 클래스 구현시 유리함
    - 재사용성이 높고 코드의 일관성을 유지할 수 있는 장점

0개의 댓글