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

bae jewoo님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

DataSource 예제2 - 커넥션 풀

별도의 쓰레드를 만드는 원리

작성

·

236

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)


[질문 내용]
안녕하세요!!
최근 병행해서 공부하고 있는 멀티 쓰레딩 개념을 도입해서
정리한 게 맞나 확인하고 싶어서 이렇게 남겨봅니다.


별도의 쓰레드를 만드는 이유: 커넥션 풀에 채우는 작업 자체가 CPU 점유 시간(cpu time)이 커서

별도의 쓰레드가 생긴 이유: HikariCP 라이브러리를 만든 개발자가 코드를 그렇게 작성

 

쓰레드 관리: 자바의 쓰레드 풀에 있는 쓰레드는 유저 레벨 쓰레드이고 os레벨의 쓰레드와 매핑되어서 사용하는데
이 멀티 쓰레딩 자체는 결국 cpu가 cpu 스케줄링을 통해서
관리(= 컨텍스트 스위칭)

항상 감사합니다

 

 

 

 

답변 3

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. bae jewoo님

생각하신 내용이 맞습니다.

감사합니다.

bae jewoo님의 프로필 이미지
bae jewoo
질문자

감사합니다!!

0

안녕하세요.. 질문과는 상관없는 내용이지만 멀티 쓰레드에 대해서 공부중이라고 해서 댓글 남겨요!! 혹시 인프런에서 수강중인 멀티쓰레딩에 대한 강의를 듣고 계시다면 추천해주실 수 있나 해서 댓글납깁니다!!

bae jewoo님의 프로필 이미지
bae jewoo
질문자

안녕하세요 철현님 저는 인프런에서 듣고 있는 강의는 따로 없습니다
관련 공부는 전공지식 CS노트 + 구글링을 통해서 하고 있습니다
전공지식 CS 노트를 쓰신 분이 인프런에 강의를 올려둔 게 있긴 합니다!
https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95

bae jewoo님의 프로필 이미지
bae jewoo
질문자

개인적으로 책에 있는 키워드를 기반으로 책 내용이 부족하면
구글링으로 정리하면서 채워 나가는 방법도 좋다고 생각합니다
어느 정도 CS 지식이 채워지고 영한님 강의를 들으니까 더욱 깊은 이해가 가능하네요

0

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

bae jewoo님의 질문에 대해, 별도의 쓰레드를 만드는 원리와 관련해 이해를 돕기 위한 기존의 질문에 답변된 내용을 찾았습니다.

본론에 들어가기에 앞서, bae jewoo님이 언급한 커넥션 풀 채우기 작업과 멀티 쓰레딩 개념에 대하여 관련 내용을 다룬 기존 질문&답변을 소개해드립니다.

  1. “별도의 스레드를 사용해서 커넥션 풀에 커넥션을 채우는 것이 이해가 되지 않습니다.” 에 대한 답변에서, 커넥션 풀을 채울 때 대기 시간 없이 애플리케이션의 실행 시간을 최적화하기 위하여 별도의 스레드를 사용하는 개념에 대해 설명하고 있습니다. 이는 질문하신 내용과 밀접하게 관련되어 있으며, 멀티 쓰레딩 개념과 커넥션 풀 관리에 대한 좀 더 명확한 이해를 돕습니다.

별도의 스레드가 생성되는 메커니즘은 실제로 애플리케이션의 성능을 최적화하기 위해 매우 중요한 부분입니다. 특히 웹 애플리케이션에서 데이터베이스 연결과 같은 리소스 집약적 작업을 처리할 때, 메인 프로그램의 실행을 방해받지 않도록 백그라운드에서 별도로 작업을 수행합니다. 이 과정에서 자바의 Executor Framework나 Spring의 TaskExecutor와 같은 툴을 사용하여, 쓰레드 풀 내의 쓰레드를 효율적으로 관리합니다. 여기서 ‘컨텍스트 스위칭’이 이루어지며, 이는 CPU가 여러 프로세스나 쓰레드 사이에서 작업을 전환하여 실행하는 방식을 의미합니다.

정리해보면, 별도의 스레드를 생성하는 이유는 성능 최적화를 위하여 리소스 집약적인 작업을 동시에 처리할 수 있게 하고, 이를 효율적으로 관리하기 위한 목적입니다. 또한, 쓰레드 관리는 자바 또는 OS 레벨에서 제공하는 여러 기술을 사용하여 수행되며, 멀티 쓰레딩이라는 개념은 이 모든 과정을 포괄합니다.

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