Код IT
← Каталог

JVM, память и потоки — Terminated

Фрагмент из «JVM, память и потоки»: Terminated.

Java main.java
public class ThreadStateTransitions {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            System.out.println("1. Состояние внутри run(): " + Thread.currentThread().getState());
            
            synchronized (this) {
                try {
                    wait(1000); // переход в TIMED_WAITING
                } catch (InterruptedException e) {}
            }
            
            System.out.println("2. После ожидания: " + Thread.currentThread().getState());
        });
        
        System.out.println("0. После создания: " + thread.getState()); // NEW
        
        thread.start();
        Thread.sleep(50);
        System.out.println("3. После start(): " + thread.getState()); // RUNNABLE или TIMED_WAITING
        
        thread.join();
        System.out.println("4. После завершения: " + thread.getState()); // TERMINATED
    }
}
public class ThreadStateTransitions {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            System.out.println("1. Состояние внутри run(): " + Thread.currentThread().getState());
            
            synchronized (this) {
                try {
                    wait(1000); // переход в TIMED_WAITING
                } catch (InterruptedException e) {}
            }
            
            System.out.println("2. После ожидания: " + Thread.currentThread().getState());
        });
        
        System.out.println("0. После создания: " + thread.getState()); // NEW
        
        thread.start();
        Thread.sleep(50);
        System.out.println("3. После start(): " + thread.getState()); // RUNNABLE или TIMED_WAITING
        
        thread.join();
        System.out.println("4. После завершения: " + thread.getState()); // TERMINATED
    }
}