
89
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
JUnit5 메서드 단위 병렬화 도입 이야기
이 게시물은 JUnit5 Vintage 엔진에 메서드 단위 병렬화를 도입하면서 발생한 교착상태 문제와 그 해결 과정을 설명합니다.문제 발생 배경 및 원인
- 클래스 단위 병렬화는 성공적이나 메서드 단위 병렬화 시 교착상태 발생
- 스레드 풀(newFixedThreadPool)의 고정 크기와 작업 큐 특성으로 인해 교착상태 발생
- 교착상태의 4가지 조건(상호 배제, 점유 대기, 비선점, 순환 대기) 설명 및 적용
해결 방법
- ForkJoinPool 도입으로 교착상태 문제 해소
- ForkJoinPool의 work stealing 특성으로 순환 대기 문제 해결
- 실제 구현 코드 및 Github Actions에서의 정상 수행 결과 공유
후속 작업 및 기대 효과
- JUnit 플랫폼에서 자원 공유 범위를 세분화하는 기능 개발 중
- 테스트 실행 간 자원 재사용성과 관리 효율성 향상 기대