
백엔드
내가 JUnit5에 병렬화를 도입한 이야기 - 메서드 단위
두줄요약
JUnit5 Vintage 엔진에 메서드 단위 병렬화를 도입한 과정을 다뤘습니다. 고정 크기 스레드 풀에서 발생한 교착 상태를 ForkJoinPool로 해결했습니다.
문제 상황
- JUnit5 Vintage 엔진에서 클래스 단위 병렬화 이후, 한 테스트 클래스 내부의 메서드 단위는 성능 향상이 부족한 상황
- 클래스와 메서드 병렬화를 함께 켠 상태에서 테스트 클래스 수가 스레드 풀 크기보다 많을 때 교착 상태 발생
- 고정 크기 스레드 풀에서 상위 작업이 스레드를 점유한 채 하위 작업 완료를 기다리며 실행 정체
