-
Virtual Thread 는 왜 도입된걸까오늘/Today I.. 2024. 3. 25. 10:23
이번 JDK21에 Virtual Thread가 도입되었다.
기존에 있는 thread 기능도 제대로 활용하지 못하는데 이 기능은 왜 들어온걸까
라는 생각만 하며 이 기능이 무엇인지 알아보았다.
Virtual Thread (이하 가상 쓰레드)는 KLT(kernel-level thread) 와 ULT(user-level thread) 를 1대1 매핑해서
사용하던 기존의 쓰레드 모델을 개선한 모델이다.
여러 개의 가상 쓰레드를 하나의 네이티브 스레드에 할당하여 사용한다.
Java Native Interface는 인터프리터없이 OS가 바로 읽을 수 있는 형태의 네이티브 코드를 JVM이 호출 할 수 있게 하는
인터페이스 이다.
이것 덕분에 자바가 플랫폼에 상관없이 동작할 수 있는데, 자바에서 메서드 앞에 native 키워드를 붙여서 이 메서드가 JNI를 사용한다는 것을 나타낸다.
이 두 개념을 가지고
https://d2.naver.com/helloworld/1203723
해당 링크를 읽어보면 쓰레드의 동작과정을 잘 이해할 수 있을 것이다.
해당 내용을 보면 가상 쓰레드를 사용하기 위해 현재 사용하는 synchronized를 ReentrantLock으로 마이그레이션 하는 중이라고 하는데, 그만큼 파급력이 큰 기능인 듯 하다.
'오늘 > Today I..' 카테고리의 다른 글
MySQL 과 PostgreSQL (1) 2024.11.19 데이터베이스 정규화 (0) 2024.04.07 오늘, Redis가 죽었다. (0) 2024.03.23 데이터베이스 정규화 (기본 정규형) (0) 2024.03.06 서버리스 (Serverless) (0) 2024.02.29