SpringBoot 쓰레드 무한 생성 테스트 코드

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초의 딜레이를 줬다.

위 테스트 코드를 실행하면 쓰레드가 무한 생성될 것이다. 나는 해당 코드로 쓰레드가 무한으로 생성될때 시스템에 어떻게 영향을 미치는지 테스트 하기 위해서 작성했었다. 당연히 프로덕션에서는 사용하지 말아야 한다.