목록 보기
Java 가상 스레드, 깊이 있는 소스 코드 분석과 작동 원리 3편 - 고정 이슈와 한계
백엔드

Java 가상 스레드, 깊이 있는 소스 코드 분석과 작동 원리 3편 - 고정 이슈와 한계

라인
라인
2024년 12월 27일

두줄요약

가상 스레드의 고정(pinned) 이슈를 JDK 소스 코드로 분석했습니다. 블로킹 I/O와 synchronized, JNI 사용 시 발생 가능성과 한계를 살펴봤습니다.

핵심 내용

  • 가상 스레드의 고정(pinned) 이슈와 작동 원리를 JDK 소스 코드 기준으로 분석
  • 컨텍스트 스위칭 중 캐리어 스레드가 교체되지 않고 고정되는 과정과 예외 흐름 정리
  • 고정 원인을 NATIVE, MONITOR, CRITICAL_SECTION으로 구분

주의할 점

  • 블로킹 I/O나 synchronized, JNI 사용 시 고정 이슈 발생 가능성 점검 필요
  • 고정 상태에서는 캐리어 스레드가 CPU에서 격리돼 성능 저하와 데드락 위험 증가

적용해볼 점

  • 가상 스레드 도입 전 고정 가능 지점 사전 점검 필요
  • synchronized와 네이티브 호출 경로를 중심으로 병목과 한계 검토 필요

다음 읽기

#Java 주제를 이어서 읽기

Java 가상 스레드, 깊이 있는 소스 코드 분석과 작동 원리 1편 - 생성과 시작

Java 가상 스레드의 생성과 시작 과정을 소스 코드로 분석했습니다. 플랫폼 스레드와 Continuation 구조를 통해 동시성 효율을 높이는 원리를 설명했습니다.

라인
라인
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...