• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

멀티스레드 속도 질문입니다

22.12.28 16:41 작성 22.12.28 16:43 수정 조회수 399

0

setCorePoolSize 2, setMaxPoolSize 8 일 때 블락 등이 발생하지 않아서 2개로만 동작한다고 하셨습니다.

cpu 하나가 2개 스레드를 번갈아가면서 동작시킬텐데요. 오히려 싱글스레드보다 context switching시간만 추가되어서 처리속도가 더 늘어나야 되지 않나 싶어요.

이유를 알 수 있을까요??

 

답변 1

답변을 작성해보세요.

0

컨텍스트 스위치는 스레드의 경합으로 부하가 생길 정도로 개수가 많거나 동시적 이슈에 영향이 갈 정도이면 성능에 영향을 주지만 적은 스레드인 경우에는 컨텍스트 스위치로 인한 성능저하는 염려할 정도는 아니며 거의 병렬실행이 가능하다는 장점이 있기 때문에 싱글스레드보다 더 나은 성능을 보여줄 수 있습니다.

다만 cpu 가 처리하는 연산이 복잡하지 않거나 아주 단순한 처리일 경우에는 싱글스레드가 나을 수 있습니다.

시스템이나 서비스 상황에 따라 스레드 정책을 세우는게 좋습니다.