Назад к вопросам
СБЕР
Senior
6
Как запустить задачу в отдельном потоке в Java?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Java для запуска задачи в отдельном потоке можно использовать несколько подходов. Вот два основных способа:
- Наследование от класса 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(); // Запускает новый поток
}
}
- Реализация интерфейса 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();
}
}
Такой подход удобен для управления жизненным циклом потоков и масштабирования.