Inflearn brand logo image

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

안녕님의 프로필 이미지
안녕

작성한 질문수

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

Fork/Join 프레임워크2 - 작업 훔치기

임계값과 스레드수를 줄일 경우 교착상태가 발생할수 있는건가요?

해결된 질문

작성

·

65

0


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

[질문 내용]

스레드를 조인하면 다른 스레드의 작업이 처리될때까지 기다려야한다고 배웠는데, 지금 예시에서는 스레드 수가 여유로워서 괜찮지만 만약 제목대로 임계값을 더 작게 하고, 스레드 수도 줄인다면 처리할 스레드의 수가 부족해져 데드락이 발생할 수도 있는 상황인지 궁금합니다

답변 2

1

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

안녕하세요. 안녕님

Fork/Join에서 join()은 대기하는 동안 자기 큐나 다른 워커의 큐에서 작업을 훔쳐 직접 실행하기 때문에 일반적으로 데드락이 일어나지는 않습니다. 물론 느리게 처리될 수는 있겠지요?

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
안녕님, 스레드 처리에 관한 질문을 주셨네요.

스레드를 조인하는 것은 다른 스레드의 작업이 완료될 때까지 기다리는 것을 의미합니다. 스레드 수를 줄이고 임계값을 더 작게 설정할 경우, 스레드가 작업을 처리할 수 있는 여유가 줄어들기 때문에 교착상태(데드락)가 발생할 가능성이 높아집니다. 교착상태는 두 개 이상의 스레드가 서로가 끝나길 기다리고 있어, 아무도 진행할 수 없는 상태가 되는 것입니다.

이를 방지하기 위해서는 스레드 풀의 크기와 작업의 임계값을 조정하여 적절한 자원 배분이 이루어지도록 관리해야 합니다. 더 자세한 분석을 위해서는 코드 예제와 스레드 설정을 함께 검토하는 것이 좋습니다.

추가적인 참고가 필요하시다면 Spring Boot Hot Swapping 가이드를 확인해 보세요. 도움이 되셨길 바랍니다!

안녕님의 프로필 이미지
안녕

작성한 질문수

질문하기