23.01.22 00:31 작성
·
1.3K
1
안녕하세요. 싱글 코어와 멀티 코어에 대해 궁금한 점에 대해 질문드립니다.
1.만약 제가 작성한 프로그램에서 멀티 쓰레드를 사용하더라도 사용하는 컴퓨터의 CPU가 싱글 코어 일 경우쓰레드를 사용할 때 컨텍스트 스위칭이 일어나기 떄문에 멀티 쓰레드를 사용하는 건 의미가 없는 게 맞을까요?
2.반대로 멀티 코어인 컴퓨터에 단일 스레드 환경의 프로그램을 만들었을 경우 여러 코어를 사용하는 게 아닌 하나의 코어만 사용하게 되어 CPU의 성능을 제대로 활용 못하는 게 맞을까요?
실제 운영체제 환경에서는 제가 만든 프로그램 외 에도 백그라운드로 실행되는 프로그램들이 있어서 코어 하나만 사용하진 않겠지만 개념적으로 봤을 때 멀티 코어일 때 단일 쓰레드 환경의 프로그램이면 CPU 성능을 제대로 활용 못 하는 게 맞는 건지 궁금합니다.
답변 1
1
2023. 01. 22. 01:15
보통은 그렇겠지만, 경우에 따라 오래 걸리는 일들 (ex. 리소스 로딩이라거나) 때문에 먹통되는 것을 방지하기 위해 멀티쓰레드를 잠시 사용하는 것은 장점이 있을 수 있습니다.
네 그렇습니다. 실제로 콘솔 등 정말 성능에 민감한 경우 정말 모든 코어들이 바쁘게 움직이게끔 쓰레드 개수를 1:1로 최대한 맞춰주기 위해 노력합니다.
2023. 01. 22. 11:57
답변 감사합니다. 새해 복 많이 받으세요 :)