← 질문 목록
#400깊이 0

가상 스레드는 왜 플랫폼 스레드보다 스루풋이 높은가?

언어 · 런타임

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

I/O 대기 시 OS 스레드를 점유하지 않고 경량 스케줄링을 수행하기 때문이다.

  1. 가상 스레드→캐리어 스레드

    마운트하여 작업 수행

  2. 가상 스레드→OS

    I/O 요청 발생 및 블로킹

  3. 가상 스레드→캐리어 스레드

    언마운트하여 OS 스레드 반납

  4. 다른 가상 스레드→캐리어 스레드

    빈 OS 스레드에 마운트하여 실행

기존 플랫폼 스레드는 OS 스레드와 1:1로 매핑된다. 스레드 생성 비용이 크고 I/O 대기 중에도 OS 스레드를 그대로 점유한다.

가상 스레드는 JVM이 관리하는 경량 스레드다. I/O 블로킹이 발생하면 캐리어 스레드에서 언마운트되어 대기한다. 그동안 다른 가상 스레드가 해당 OS 스레드를 사용한다.

다만 CPU 연산 중심 작업에서는 성능 이점이 없다. synchronized 구문으로 스레드가 고정되는 핀드 상태를 피해야 한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

가상 스레드는 왜 플랫폼 스레드보다 스루풋이 높은가?