Sobes.tech
Назад к вопросам
Senior
6

Как запустить задачу в отдельном потоке в Java?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Java для запуска задачи в отдельном потоке можно использовать несколько подходов. Вот два основных способа:

  1. Наследование от класса Thread:
class MyTask extends Thread {
    @Override
    public void run() {
        System.out.println("Задача выполняется в отдельном потоке");
    }
}

public class Main {
    public static void main(String[] args) {
        MyTask task = new MyTask();
        task.start(); // Запускает новый поток
    }
}
  1. Реализация интерфейса Runnable:
class MyTask implements Runnable {
    @Override
    public void run() {
        System.out.println("Задача выполняется в отдельном потоке");
    }
}

public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(new MyTask());
        thread.start();
    }
}

Для более сложных сценариев и управления пулом потоков рекомендуется использовать ExecutorService из пакета java.util.concurrent:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Main {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newSingleThreadExecutor();
        executor.submit(() -> {
            System.out.println("Задача в отдельном потоке через ExecutorService");
        });
        executor.shutdown();
    }
}

Такой подход удобен для управления жизненным циклом потоков и масштабирования.