프로세스와 쓰레드의 전반적인 개념

2022. 2. 14. 13:46·자바/프로세스와 쓰레드

1. 프로세스란?

- 간단하게 말하면 '실행 중인 프로그램' 이다.

- os로부터 필요한 자원을 할당받으면 프로세스가 된다.

- 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스' 라고 부른다.

( 쓰레드는 간단히 말하면 공장(프로세스)에서 일하는 사람(쓰레드)으로 비유해도 좋다. )

( 프로세스는 메모리에 할당받아 자리를 차지하며, 쓰레드 또한 프로세스처럼 call stack의 공간을

필요하기 때문에 프로세스의 메모리 한계에 따라 쓰레드의 수가 정해진다. 그렇다고, 한계에 다다를

정도로 만들지는 않는다. )

 

 

 

 

2. 멀티태스킹과 멀티쓰레딩

- 멀티태스킹은 여러 개의 프로세스를 동시에 실행할 수 있는 것을 말한다.

- 멀티쓰레딩은 하나의 프로세스 내에서 여러 쓰레드가 동시에 수행하는 것을 말한다.

 

( 하나의 코어가 한 번에 단 하나의 작업만 수행하므로, 동시에 처리되는 코어의 개수와 작업의 개수는 항상

동일하다. 그러나, 처리해야하는 쓰레드의 수는 코어의 수보다 많기 때문에 각 코어가 아주 짧은 시간에 여러 작업을

번갈아 가면서 수행하므로 모두 동시에 수행하는 것처럼 보인다. )

 

 

 

 

3. 멀티쓰레딩의 장단점

- 장점

(1) CPU의 사용률을 향상시킨다.

(2) 자원을 보다 효율적으로 사용한다.

(3) 사용자에 대한 응답성을 높인다.

(4) 작업이 분리되어 코드가 간결해진다.

 

- 단점

(1) 자원을 공유하며 쓰기 때문에 동기화 문제가 발생할 수 있다.

(2) 자원을 점유하면서 교착상태가 발생할 수 있다.

 

'자바 > 프로세스와 쓰레드' 카테고리의 다른 글

쓰레드의 실행제어  (0) 2022.02.20
데몬 쓰레드  (0) 2022.02.14
쓰레드의 우선순위와 쓰레드 그룹  (0) 2022.02.14
싱글쓰레드와 멀티쓰레드  (0) 2022.02.14
쓰레드의 기본적 구현과 실행  (0) 2022.02.14
'자바/프로세스와 쓰레드' 카테고리의 다른 글
  • 데몬 쓰레드
  • 쓰레드의 우선순위와 쓰레드 그룹
  • 싱글쓰레드와 멀티쓰레드
  • 쓰레드의 기본적 구현과 실행
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      InputStream
      snail
      ServerSocket
      유용한 클래스
      람다식
      역직렬화
      다형성
      알고스팟
      Collections Framework
      Arrays
      불안정 정렬
      map()
      코딩테스트
      소켓 프로그래밍
      serializable
      outputstream
      file
      코딩트리조별과제
      java.lang패키지
      java.time 패키지
      제자리 정렬
      문자 기반 스트림
      중간연산
      안정 정렬
      자바 개념
      안드로이드 스튜디오
      스트림
      선택 정렬
      TCP 소켓 프로그래밍
      코드트리
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    프로세스와 쓰레드의 전반적인 개념
    상단으로

    티스토리툴바