네트워크

1 - 1) 멀티스레딩 개요

부레두 2023. 10. 11. 18:06

멀티프로세싱( Multi-processing) 이란?

멀티프로세스 :
→ 프로세스가 여러 개 실행되고 있는 것

프로그램과 프로세스

  • 프로그램 : 컴퓨터에서 실행되는 명령어 모음이 들어 있는 데이터 덩어리

프로그램 구성

  • 프로세스 : 프로그램 안의 명령어가 한 줄씩 실행되며 프로그램이 뭔가 활동을 하는 상태

프로세스 구성


스레드

프로세스처럼 명령어를 한 줄씩 실행하는 기본 단위

  • 한 프로세스 안에 여러 개가 있음
  • 한 프로세스 안에 스레드는 프로세스 안의 같은 메모리 공간을 사용 가능
  • 스레드마다 스택을 가짐 = 각 스레드에서 실행되는 로컬 변수들이 스레드 마다 있음

  • 싱글스레드
    • 하나의 스레드만 실행되는 프로그램
    • 동시에 하나만 실행
  • 멀티 스레드
    • 프로세스 안에서 여러 스레드를 생성해 동시에 한꺼번에 실행되는 것
    • 여러 스레드가 동시에 여러가지 일을 처리
// 스레드 생성 함수
std::thread t1(ThreadProc, 123);

멀티스레드 프로그래밍이 사용되는 경우

  • 오래 걸리는 일 하나와 빨리 끝나는 일 여럿을 같이 해야 할 때
    ex ) 지루한 로딩을 메꿀 애니메이션 재생, 미니 게임
  • 어떤 긴 처리를 진행하는 동안 다른 짧은 일을 처리해야 할 때
    ex ) 게임 서버에서 플레이어 정보를 읽거나 쓰려고 디스크를 액세스하는 경우
  • 기기에 있는 CPU를 모두 활용해야 할 때