기본 콘텐츠로 건너뛰기

5월, 2023의 게시물 표시

[정보공유] Working with Virtual Threads in Spring 6 - baeldung blog

최근 Baeldung 의 Author 들이 활발하게 활동을 하고 있습니다. 그만큼 최근에 여러가지 이슈들이 많이 있다는 것을 의미하는 것도 같습니다. 최근 Jdk 의 앞으로의 방향에 대한 포스트나 유튜브를 보다가 관심이 갔던 부분 중 하나가 Virtual Threads  부분이었습니다. 특히나 Spring Framework 의 TaskExecuteor에 어떤 식으로 포함이 될 지 궁금하면서도 찾아보지는 않았네요.(게으른것도 있지만 요즘 프로그램 기초편을 다시 공부중이라 정신이 없네요) Baeldung Team 에서 뭔가 해주지 않을까 했는데 드디어 Post가 올라왔습니다. 해당 포스트로 넘어가는 링크 보기 전에 잠시 Virtual Thread에 대해서 알아볼께요. Java Virtual Threads (JVTs) JVTs 는 Java 19 에서 새롭게 포함된 새로운 기능입니다. Platform Threads의 대안으로 등장했고, Platform Threads 보다 경령의 Thread로서 제안되었는데, 이 프로젝트는 Project Loom에 의해서 발전하고 있습니다. JVTs는 자바 가상 머신 (JVM)에서 관리되는 Thread model로 특정 OS Threads 에 바인딩되어 동작하지 않기 때문에 Platform Thread 보다 훨씬 효율적이고 확장 가능하다는 설명입니다. 일단 스펙 설명만으로 보면 Threads의 생성(created)과 소멸(destroyed)이 On-demand 로 동작하기 때문에 좀 더 Scalable하다고 합니다. 이는 높은 병렬처리(High-concurrency) application 즉 대규모 threads 가 필요한 application에 적합하다고 하네요.  또한 JVTs는 연속성(continuations) 및 가상스택 프레임(virtualized stack frames)과 같은 다른 기능을 포함한다고도 하는데 이 부분은 무슨 이야기인지 잘 모르겠습니다.  다만, 아직 실험(experiment) 수준으로 앞으로의 행보를 잘 따