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

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

라인
라인
2024년 12월 13일

두줄요약

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

핵심 내용

  • Java 가상 스레드의 생성과 시작 과정을 OpenJDK 21+35 소스 코드 기준으로 분석한 글
  • 플랫폼 스레드와 캐리어 스레드, Continuation 구조를 통해 블로킹 I/O와 스레드 생성 비용을 줄이는 원리 설명
  • VirtualThread의 scheduler, cont, runContinuation, state, carrierThread 역할과 start부터 task 실행까지의 흐름 정리

구조와 흐름

  • scheduler가 가상 스레드를 실행할 캐리어 스레드와의 연결을 담당
  • cont와 runContinuation이 task를 감싸 실행 전후 공통 작업을 처리
  • mount와 unmount, Continuation.run, enterSpecial을 거쳐 실제 task가 시작

적용해볼 점

  • 가상 스레드의 장점을 이해하려면 OS 레벨 스레드와 애플리케이션 레벨 스케줄링 차이를 함께 살펴볼 필요
  • 시작 과정에서의 mount, unmount, 상태 관리가 이후 컨텍스트 스위칭의 기반이 됨
  • 다음 편에서 다룰 park, unpark, pinned 이슈까지 함께 보면 내부 동작 이해에 도움

댓글 0

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

댓글을 불러오는 중...