작성
·
675
0
답변 1
5
1. 절대 아닙니다.
2. CPU 코어 개수랑 동일하게 만들어서 실행되는 상태가 가장 아름다운 상황입니다.
따라서 보통 쓰레드 개수를 CPU 코어 개수 * 1.5 정도로 하는 경우가 많습니다.
context switching 비용 때문에 그 이상으로 쓰레드를 만들면,
오히려 쓰레드 교체 비용 때문에 역효과를 냅니다.
위 부분은 면접에서 매우 매우 자주 나오는 질문이니 기억해주시면 좋습니다.
이상적인 상황이 항상 유지되지 않기 때문입니다
실제로 운영체제는 아주 많은 프로그램들을 동시에 실행하고 있고
스케줄링 정책을 통해 실행 시간을 부여하는데
이런 부분들 때문에 실제 코어 갯수보다는 조금 더 많이 쓰레드를 생성하는게
'실험적으로' 성능이 좋습니다.
다만 (Xbox, PS등)콘솔이나 일부 환경에서는
정말로 코어 개수만큼 쓰레드를 생성하기도 하고
애당초 운영체제가 게임에 맞게 특화되어 있습니다.
말씀하신대로라면, 코어 개수와 동일하게 만들어 실행되는 상태가 가장 아름다운 상황임에도 불구하고 코어개수의 1.5배만큼 스레드를 생성하는 이유는 무엇입니까?