네트워크
1 - 1) 멀티스레딩 개요
부레두
2023. 10. 11. 18:06
멀티프로세싱( Multi-processing) 이란?
멀티프로세스 :
→ 프로세스가 여러 개 실행되고 있는 것
프로그램과 프로세스
- 프로그램 : 컴퓨터에서 실행되는 명령어 모음이 들어 있는 데이터 덩어리
- 프로세스 : 프로그램 안의 명령어가 한 줄씩 실행되며 프로그램이 뭔가 활동을 하는 상태
스레드
프로세스처럼 명령어를 한 줄씩 실행하는 기본 단위
- 한 프로세스 안에 여러 개가 있음
- 한 프로세스 안에 스레드는 프로세스 안의 같은 메모리 공간을 사용 가능
- 스레드마다 스택을 가짐 = 각 스레드에서 실행되는 로컬 변수들이 스레드 마다 있음
- 싱글스레드
- 하나의 스레드만 실행되는 프로그램
- 동시에 하나만 실행
- 멀티 스레드
- 프로세스 안에서 여러 스레드를 생성해 동시에 한꺼번에 실행되는 것
- 여러 스레드가 동시에 여러가지 일을 처리
// 스레드 생성 함수
std::thread t1(ThreadProc, 123);
멀티스레드 프로그래밍이 사용되는 경우
- 오래 걸리는 일 하나와 빨리 끝나는 일 여럿을 같이 해야 할 때
ex ) 지루한 로딩을 메꿀 애니메이션 재생, 미니 게임 - 어떤 긴 처리를 진행하는 동안 다른 짧은 일을 처리해야 할 때
ex ) 게임 서버에서 플레이어 정보를 읽거나 쓰려고 디스크를 액세스하는 경우 - 기기에 있는 CPU를 모두 활용해야 할 때