내가 JUnit5에 병렬화를 도입한 이야기 - 메서드 단위
89
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

JUnit5 메서드 단위 병렬화 도입 이야기

이 게시물은 JUnit5 Vintage 엔진에 메서드 단위 병렬화를 도입하면서 발생한 교착상태 문제와 그 해결 과정을 설명합니다.

문제 발생 배경 및 원인

  • 클래스 단위 병렬화는 성공적이나 메서드 단위 병렬화 시 교착상태 발생
  • 스레드 풀(newFixedThreadPool)의 고정 크기와 작업 큐 특성으로 인해 교착상태 발생
  • 교착상태의 4가지 조건(상호 배제, 점유 대기, 비선점, 순환 대기) 설명 및 적용

해결 방법

  • ForkJoinPool 도입으로 교착상태 문제 해소
  • ForkJoinPool의 work stealing 특성으로 순환 대기 문제 해결
  • 실제 구현 코드 및 Github Actions에서의 정상 수행 결과 공유

후속 작업 및 기대 효과

  • JUnit 플랫폼에서 자원 공유 범위를 세분화하는 기능 개발 중
  • 테스트 실행 간 자원 재사용성과 관리 효율성 향상 기대

연관 게시글