Chapter 13 스레드

Seunghee Ryu·2023년 10월 26일
0

자바의 정석

목록 보기
4/11

프로세스와 스레드

  • 프로세스 : 실행중인 프로그램
    - 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 스레드로 구성
    - 프로세스의 자원을 이요해서 실제로 작업을 수행하는 것이 스레드
    - 모든 프로세스에는 최소한 하나 이상의 스레드가 존재
    - 둘 이상의 스레드를 가진 프로세스를 멀티스레드 프로세스라고 함
    - 하나의 프로세스가 가질 수 있는 스레드의 개수는 제한되어 있지 않으나 스레드가 작업을 수행하는데 개별적인 메모리 공간(호출스택)을 필요로 하기 때문에 프로세스의 메모리 한계에 따라 생성할 수 있는 스레드의 수가 결정됨
    - 실제로는 프로세스의 메모리 한계에 다다를 정도로 많은 스레드를 생성하는 일은 없음

멀티태스킹과 멀티스레딩

  • 여러개의 프로세스가 동시에 실행되는 것 : 멀티 태스킹
  • 하나의 프로세스 내에서 여러개의 스레드가 동시에 실행되는 것 : 멀티스레딩
    - CPU의 코어가 한번에 단 하나의 작업만 수행할 수 있으므로 실제로 동시에 처리되는 작업의 개수는 코어의 개수와 일치
    - 코어가 아주 짧은 시간 동안 여러 작업을 번갈아가며 수행함으로써 여러 작업들이 모두 동시에 수행되는 것처럼 보임

멀티스레딩의 장단점

  • 장점
    - CPU의 사용률을 향상시킴
    - 자원을 보다 효율적으로 사용
    - 사용자에 대한 응답성이 향상
    - 작업이 분리되어 코드 간결
  • 단점
    - 자원을 공유하면서 작업하기 때문에 도익화, 교착상태 같은 문제 발생

0개의 댓글