인프런 커뮤니티 질문&답변

탐탐님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

멀티쓰레드 개론

싱글 코어와 멀티 코어에 대해 질문드립니다.

23.01.22 00:31 작성

·

1.3K

1

안녕하세요. 싱글 코어와 멀티 코어에 대해 궁금한 점에 대해 질문드립니다.

1.만약 제가 작성한 프로그램에서 멀티 쓰레드를 사용하더라도 사용하는 컴퓨터의 CPU가 싱글 코어 일 경우쓰레드를 사용할 때 컨텍스트 스위칭이 일어나기 떄문에 멀티 쓰레드를 사용하는 건 의미가 없는 게 맞을까요?

2.반대로 멀티 코어인 컴퓨터에 단일 스레드 환경의 프로그램을 만들었을 경우 여러 코어를 사용하는 게 아닌 하나의 코어만 사용하게 되어 CPU의 성능을 제대로 활용 못하는 게 맞을까요?

실제 운영체제 환경에서는 제가 만든 프로그램 외 에도 백그라운드로 실행되는 프로그램들이 있어서 코어 하나만 사용하진 않겠지만 개념적으로 봤을 때 멀티 코어일 때 단일 쓰레드 환경의 프로그램이면 CPU 성능을 제대로 활용 못 하는 게 맞는 건지 궁금합니다.

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2023. 01. 22. 01:15

  1. 보통은 그렇겠지만, 경우에 따라 오래 걸리는 일들 (ex. 리소스 로딩이라거나) 때문에 먹통되는 것을 방지하기 위해 멀티쓰레드를 잠시 사용하는 것은 장점이 있을 수 있습니다.

  2. 네 그렇습니다. 실제로 콘솔 등 정말 성능에 민감한 경우 정말 모든 코어들이 바쁘게 움직이게끔 쓰레드 개수를 1:1로 최대한 맞춰주기 위해 노력합니다.

탐탐님의 프로필 이미지
탐탐
질문자

2023. 01. 22. 11:57

답변 감사합니다. 새해 복 많이 받으세요 :)

탐탐님의 프로필 이미지

작성한 질문수

질문하기