Thrad stop 방법(Java)

인류보안·2024년 11월 4일

개발

목록 보기
4/7

Java에서 Thread 중지 방법: 안전하고 권장되는 방식
Java에서 Thread를 중지하는 방법은 여러 가지가 있지만, 안전하고 권장되는 방식은 interrupt() 메서드를 사용하는 것입니다.

  1. interrupt() 메서드
    interrupt() 메서드는 Thread에 인터럽트 신호를 보냅니다.
    Thread는 인터럽트 신호를 받으면 InterruptedException 예외를 발생시키거나 isInterrupted() 메서드를 통해 인터럽트 상태를 확인하여 작업을 중단할 수 있습니다.
    interrupt() 메서드는 Thread를 강제로 종료시키는 것이 아니라, Thread에게 작업을 중단하도록 요청하는 것입니다. 따라서 Thread가 인터럽트 신호를 무시하고 계속 실행될 수도 있습니다.

  2. 인터럽트 처리
    Thread에서 인터럽트 신호를 처리하는 방법은 다음과 같습니다.
    InterruptedException 예외를 catch하여 작업을 중단합니다.
    isInterrupted() 메서드를 주기적으로 호출하여 인터럽트 상태를 확인하고, 인터럽트 신호가 발생하면 작업을 중단합니다.

class MyThread extends Thread {
    @Override
    public void run() {
        while (!isInterrupted()) {
            // 작업 수행
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // 인터럽트 신호를 받으면 작업 중단
                break;
            }
        }
    }
}

public class Main {
    public static void main(String[] args) throws InterruptedException {
        MyThread thread = new MyThread();
        thread.start();

        Thread.sleep(5000); // 5초 후 Thread 중지
        thread.interrupt();
    }
}

주의 사항
stop() 메서드는 Thread를 강제로 종료시키는 위험한 메서드이므로 사용하지 않는 것이 좋습니다.
suspend() 및 resume() 메서드는 데드락을 발생시킬 수 있으므로 사용하지 않는 것이 좋습니다.

결론
Java에서 Thread를 중지하는 가장 안전하고 권장되는 방식은 interrupt() 메서드를 사용하는 것입니다. Thread는 인터럽트 신호를 받으면 InterruptedException 예외를 발생시키거나 isInterrupted() 메서드를 통해 인터럽트 상태를 확인하여 작업을 중단할 수 있습니다.

profile
#Program #Trading

0개의 댓글