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

JVM, память и потоки — Как создать поток?

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

Java main.java
public class RunnableExample {
    public static void main(String[] args) {
        // Создание задачи
        Task task1 = new Task("Задача-A");
        Task task2 = new Task("Задача-B");
        
        // Оборачивание задач в потоки
        Thread thread1 = new Thread(task1);
        Thread thread2 = new Thread(task2);
        
        thread1.start();
        thread2.start();
        
        // Использование лямбда-выражения (Java 8+)
        Thread lambdaThread = new Thread(() -> {
            System.out.println("Поток через лямбду запущен");
            for (int i = 0; i < 3; i++) {
                System.out.println("Лямбда: " + i);
                try { Thread.sleep(150); } catch (InterruptedException e) {}
            }
        });
        lambdaThread.start();
    }
    
    static class Task implements Runnable {
        private String name;
        
        Task(String name) {
            this.name = name;
        }
        
        @Override
        public void run() {
            for (int i = 0; i < 4; i++) {
                System.out.println(name + " выполняет шаг " + i);
                try {
                    Thread.sleep(200);
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                    break;
                }
            }
        }
    }
}
public class RunnableExample {
    public static void main(String[] args) {
        // Создание задачи
        Task task1 = new Task("Задача-A");
        Task task2 = new Task("Задача-B");
        
        // Оборачивание задач в потоки
        Thread thread1 = new Thread(task1);
        Thread thread2 = new Thread(task2);
        
        thread1.start();
        thread2.start();
        
        // Использование лямбда-выражения (Java 8+)
        Thread lambdaThread = new Thread(() -> {
            System.out.println("Поток через лямбду запущен");
            for (int i = 0; i < 3; i++) {
                System.out.println("Лямбда: " + i);
                try { Thread.sleep(150); } catch (InterruptedException e) {}
            }
        });
        lambdaThread.start();
    }
    
    static class Task implements Runnable {
        private String name;
        
        Task(String name) {
            this.name = name;
        }
        
        @Override
        public void run() {
            for (int i = 0; i < 4; i++) {
                System.out.println(name + " выполняет шаг " + i);
                try {
                    Thread.sleep(200);
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                    break;
                }
            }
        }
    }
}