[개발 일기] 2025.04.12 - 프로세스 vs 스레드

2025. 4. 12. 16:12·개발 일기

💡 개요

 

오늘은 프로세스와 스레드를 비교하며 정리해 보자.

 

 

 

🛠️ 프로세스

 

프로세스란, 컴퓨터에 설치된 프로그램이 운영체제로부터 자원을 할당받아 실행되는 작업 단위를 말한다.

 

 

예를 들어, 내 맥북에 설치된 디스코드를 실행하면, 이 디스코드는 하나의 프로세스로 동작하게 된다.

 

 

 

⚙️ 프로세스간 통신

 

프로세스는 서로의 메모리 공간에 접근할 수 없기 때문에, 통신을 위해선 IPC(Inter-Process Communication) 기술이 필요하다.

 

 

대표적인 IPC 기술에는 메시지 큐, 공유 메모리, 파이프 등이 있다.

 

 

이러한 기술들은 모두 커널을 활용하는데, 그 이유는 커널 영역은 항상 주 메모리에 상주하고, 모든 프로세스가 접근 가능한 공용 공간이기 때문이다.

 

 

IPC를 통해 여러 프로세스 간의 협업이 가능해지며, 복잡한 프로그램 구성에 매우 유용하다.

 

 

 

🛠️ 스레드

 

스레드는 프로세스 내부의 실행 흐름 단위이다.

 

 

따라서 하나의 프로세스에는 최소 한 개 이상의 스레드가 존재하며, 일반적으로 메인 스레드가 기본적으로 함께 생성된다.

 

 

이는 프로세스가 실제로 동작하려면 실행 흐름이 반드시 필요하기 때문이다.

 

 

스레드의 가장 큰 특징은 같은 프로세스 내에서 코드, 데이터, 힙 영역을 공유한다는 점이다.

 

 

하지만 스택 영역은 스레드마다 독립적으로 할당되기 때문에, 각 스레드는 자신만의 실행 흐름과 로컬 데이터를 가지며 독립적으로 동작할 수 있다.

 

 

 

⚙️ 스레드간 통신

 

스레드는 힙 영역을 포함한 대부분의 메모리 공간을 공유하기 때문에, 별도의 통신 기법 없이도 데이터를 주고받을 수 있다.

 

 

하지만 그만큼 동기화 문제나 데이터 충돌이 발생할 수 있어, 이를 방지하기 위해 락, 세마포어, 뮤텍스 등의 동기화 도구가 사용된다.

'개발 일기' 카테고리의 다른 글

[개발 일기] 2025.04.14 - 스레드 로컬 (Thread Local)  (0) 2025.04.14
[개발 일기] 2025.04.13 - CQRS  (0) 2025.04.13
[개발 일기] 2025.04.11 - String vs StringBuffer vs StringBuilder  (1) 2025.04.11
[개발 일기] 2025.04.10 - Spring Security Filter  (0) 2025.04.10
[개발 일기] 2025.04.09 - 정형 데이터 vs 비정형 데이터  (1) 2025.04.09
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.04.14 - 스레드 로컬 (Thread Local)
  • [개발 일기] 2025.04.13 - CQRS
  • [개발 일기] 2025.04.11 - String vs StringBuffer vs StringBuilder
  • [개발 일기] 2025.04.10 - Spring Security Filter
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.04.12 - 프로세스 vs 스레드
상단으로

티스토리툴바