package CHAPTER12;

import java.util.Scanner;

public class LAB01_NewsTicker {
    public static void main(String[] args) {
        String news = "속보: 자바 스레드 예제가 드디어 완성되었습니다!";

        // 티커 스레드를 종료하기 위한 참조 변수
        Thread ticker = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) { // 인터럽트 상태가 아닐 때만 실행
                for (int i = 0; i < news.length(); i++) {
                    String display = news.substring(i) + " " + news.substring(0, i);
                    System.out.print("\r" + display);

                    try {
                        Thread.sleep(200); // 0.2초 대기 후 다음 출력
                    } catch (InterruptedException e) {
                        // 인터럽트 발생 시 안전하게 종료
                        return;
                    }
                }
            }
        });

        ticker.start(); // 뉴스 티커 실행

        // 입력 감지용 스레드 (사용자가 엔터를 누르면 종료)
        Thread stopper = new Thread(() -> {
            Scanner scanner = new Scanner(System.in);
            System.out.println("\n▶ 종료하려면 엔터키를 누르세요...");
            scanner.nextLine(); // 엔터 입력 대기
            ticker.interrupt(); // 티커 스레드 종료 요청
            System.out.println("\n뉴스 티커를 종료합니다.");
            scanner.close();
        });

        stopper.start(); // 사용자 입력 대기 스레드 실행
    }
}
