728x90
반응형
Java 8 이후 세 번째 LTS버전인 Java 21이 2023년 9월에 릴리즈 예정인데, 이 버전에 Virtual Thread 기능이 추가될 예정입니다. (현재 Java 19에 Preview Features로 들어가 있음)
그래서 Virtual Thread 주제로 포스팅하려고 보니 이미 잘 정리되어 있는 포스팅이 많아서 요약정리만 하겠습니다.
- 높은 처리량을 보장하는 Reactive Programming인 Spring Webflux는 Mono나 FLux와 같은 Publisher 타입으로 값을 래핑 해야 하기 때문에 코드 가독성이 좋지 않고, 고성능을 보장하더라도 유지보수가 어렵고 러닝커브가 존재합니다.
- 최신 pinpoint 버전에서는 webflux도 지원하지만 이전 버전에서는 pinpoint로 안 잡힘
- Virtual Thread를 사용하면 Non-blocking에 대한 처리를 JVM 레벨에서 담당하여 virtual thread pool을 사용하지 않습니다.
- Blocking이 발생하면 내부적으로 스케줄링을 활용하여 platform thread가 대기하게 두지 않고 다른 virtual thread가 작업할 수 있도록 하여 Non-blocking이 누리는 장점을 동일하게 누릴 수 있음
- 기존의 Thread(Platform Thread)와 Virtual Thread가 공존합니다.
- Virtual Thread를 사용하더라도 응답속도가 빨라지진 않음 (처리량만 늘어날 듯)
[Reference]
https://findstar.pe.kr/2023/04/17/java-virtual-threads-1/
https://www.baeldung.com/java-virtual-thread-vs-thread
https://theboreddev.com/understanding-java-virtual-threads/
https://www.infoq.com/articles/java-virtual-threads/
https://blogs.oracle.com/javamagazine/post/java-loom-virtual-threads-platform-threads
728x90
반응형
'java' 카테고리의 다른 글
[JAVA] JDK 11에서 JDK 21로 변경하기 (LTS버전) (0) | 2024.05.08 |
---|---|
[Java11] Composite Pattern 컴포지트 패턴 (0) | 2023.09.21 |
[Java11] Exception이 성능에 미치는 영향 (0) | 2023.03.19 |
[Java11] Customizing redisCodec for redisCommands (0) | 2023.02.09 |
[JAVA] UUID 중복 확률 (0) | 2022.08.09 |
댓글