강의

멘토링

로드맵

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

Cola님의 프로필 이미지
Cola

작성한 질문수

백엔드 개발자 성능 개선 초석 다지기

비동기 방식 활용 해보기

thread pool

작성

·

6

0

common pool을 사용하지 않도록 thread pool을 설정 해야 된다고 주의사항을 적어주셨는데 그 이유는 무엇인가요?

그리고 둘의 차이는 onPool-worker-3, pool-1-thread-8 이라고 알려주셨는데 차이가 이거밖에 없는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. Cola님.

비동기 프로그래밍에서 common poolthread pool의 차이점과 그 사용 이유에 대해 질문하셨군요.

Common Pool vs. Thread Pool

  1. Common Pool

    • Java에서 ForkJoinPool.commonPool()은 모든 애플리케이션이 기본적으로 사용할 수 있는 공용 스레드 풀입니다.
    • 장점: 쉽게 사용할 수 있으며, 소규모 작업을 수행할 때 추가 설정이 필요 없습니다.
    • 단점: 과도한 사용 시, 다른 작업과 충돌하거나 성능 저하를 유발할 수 있으며, 스레드를 독점할 위험이 있습니다.
  2. Thread Pool

    • 각 애플리케이션이나 컴포넌트가 독립적으로 관리하는 스레드 풀로, 필요에 따라 유연하게 조정할 수 있습니다.
    • 장점: 스레드 수를 조절하고, 스레드 풀에 할당된 작업의 우선순위를 관리할 수 있어 성능 튜닝에 유리합니다.
    • 단점: 설정이 필요하며, 메모리 관리에 신경을 써야 합니다.

차이점에 대한 설명

  • common pool은 간단하게 사용할 수 있지만, 다양한 애플리케이션이 그 스레드를 공유하기 때문에, 특정 애플리케이션의 요구에 맞추기 어려울 수 있습니다.
  • 반면, 별도의 thread pool을 설정하면, 해당 애플리케이션의 파라미터에 맞게 스레드의 수와 동작 방식을 조정할 수 있습니다.

관련하여 더 이해를 돕기 위해 추가 정보를 제공하기는 어렵지만, 추후 비슷한 주제의 질문을 확인해 보시면 도움이 될 수도 있습니다:
- 비동기 방식시 주의사항 관련해서 (Common Pool)

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Cola님의 프로필 이미지
Cola

작성한 질문수

질문하기