inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

1시간만에 끝내는 virtual thread in spring boot

summary

pinned 확인법

422

adoda

작성한 질문수 3

0

https://github.com/openjdk/jdk/pull/17221

이런 내용이 있네요. -Djdk.tracePinnedThreads 보다 JFR 을 권장하는 것 같습니다.

java spring-boot 동시성 thread virtual-thread

답변 3

1

김민석

덧붙이자면, -Djdk.tracePinnedThreads와 open jdk 23 이하에서 제공하는 JFR 이벤트는 성격이 다릅니다.

-Djdk.tracePinnedThreads는 pinning이 일어나자 마자 stack trace가 찍힙니다. 하지만 jdk 21 이하에서 제공하는 JFR 이벤트는 후행 이벤트[1]입니다. pinning이 일어난 로직이 끝나야 이벤트가 출력됩니다. open jdk 24 이상부터는 -Djdk.tracePinnedThreads를 JFR로 완전히 대체할 수 있다고 해야 더 명확할 것 같습니다[2]. 물론 작성자님이 올리신 것 처럼 -Djdk.tracePinnedThreads를 권장하진 않습니다[3]. 다만 이를 대체할 기능이 크게 없네요😅

 

[1]

jdk.VirtualThreadPinned indicates that a virtual thread was parked while pinned, i.e., without releasing its platform thread (see above). This event is enabled by default, with a threshold of 20ms.
https://openjdk.org/jeps/444

[2]

A jdk.VirtualThreadPinned event is recorded by JDK Flight Recorder (JFR) whenever a virtual thread blocks inside a synchronized method. This event has been useful to identify code that would benefit from being changed to make less use of synchronized methods and statements, to not block while inside such constructs, or to replace such constructs with java.util.concurrent locks.
https://openjdk.org/jeps/491

[3]

As regards jdk.tracePinnedThreads. We want this system property to go away, it's just unfortunate that it seems to be widely used.

https://github.com/openjdk/jdk/pull/17221#issuecomment-1874211812

0

Hello World

https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html#GUID-2BCFC2DD-7D84-4B0C-9222-97F9C7C6C521

위 oracle guide 에는 명확히 적혀있지 않아서 저도 잘 몰랐네요. 제보 감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

제공된 정보에는 질문하신 내용과 관련된 내용이 포함되어 있지 않습니다. 다른 질문이 있으시면 도움드릴 준비가 되어 있습니다.

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

5

1

아무도 모르게 책 내시면 모르실 줄 알고!!

1

28

2

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

39

1

리뉴얼 시기

0

11

1

스크립트에 대해 질문 있습니다.

1

33

1

같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!

2

28

1

조건 검색 질문

0

26

1

JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문

0

37

3

클로드코드 명령어-대화&세션관리 수업 자료

0

33

1

콘솔 로그가 깨져나오는데 혹시 방법이 있을까요?

0

39

2

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

46

2

PlatformTransactionManager, ResourcelessTransactionManager 질문

1

51

2

WebFlux & Web MVC 혼용해서 사용했을 때 스레드에 대한 질문

0

28

1

자료 한번에 다운받기

0

28

1

서울 이미지 10개에 대한 url 접근 불가

0

60

2

스프링 빈 등록 방법 2가지 다 알아야하는 이유

0

50

1

mybatis 를 이용한 crud에서 insert에서 resultType='long" 이라고 하셨는데요,

0

24

1

댓글 삭제 로직에서 동시성 문제 발생 가능성

0

34

1

설계 트레이드 오프 링크 접속 안됨

0

76

2

테스트 질문, 어떤것을 사용할것인것에 대해서

0

39

1

ThreadPoolTaskExecutor에서의 가상스레드

0

296

2

1강 성능비교 질문

0

374

1

스케쥴러 질문드립니다

0

338

2

Performance 테스트에서 CPU 작업도 Virtual이 빠른것 같습니다

0

367

1