SpringBoot 쓰레드 무한 생성 테스트 코드
스프링 부트에서 쓰레드를 무한 생성하는 테스트 코드를 작성해 보았다.
아래의 예시는 JUnit과 SpringBootTest를 이용해서 테스트 코드를 작성하는 법이다.
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class ThreadCreationTest {
@Test
public void testThreadCreation() throws InterruptedException {
while (true) {
Thread thread = new Thread(() -> {
// 생성될 때마다 실행될 코드
try {
Thread.sleep(1000); // 1초 대기
} catch (InterruptedException e) {
e.printStackTrace();
}
});
thread.start(); // 쓰레드 시작
}
}
}
개발자들은 보면 알겠지만, 간단히 설명하면 testThreadCreation메소드 안에서 While문으로 무한 루프를 생성하고 그 안에서 쓰래드를 무한정 생성한다. 생성된 쓰래드를 유지하기위해 1초의 딜레이를 줬다.
위 테스트 코드를 실행하면 쓰레드가 무한 생성될 것이다. 나는 해당 코드로 쓰레드가 무한으로 생성될때 시스템에 어떻게 영향을 미치는지 테스트 하기 위해서 작성했었다. 당연히 프로덕션에서는 사용하지 말아야 한다.