Урок 24: Основы многопоточности
Многопоточность в Java позволяет выполнять несколько потоков одновременно, что может улучшить производительность и отзывчивость программ. Каждый поток представляет собой отдельный путь выполнения внутри программы. В Java многопоточность реализована через классы Thread
и интерфейс Runnable
. В этом уроке мы рассмотрим, как создавать и управлять потоками.
Создание потоков
Для создания нового потока в Java можно использовать класс Thread
или реализовать интерфейс Runnable
. Рассмотрим пример с использованием класса Thread
:
public class ThreadExample extends Thread {
public void run() {
System.out.println("Поток выполняется");
}
public static void main(String[] args) {
ThreadExample thread = new ThreadExample();
thread.start();
}
}
Результат выполнения
Использование интерфейса Runnable
Другой способ создания потока — реализация интерфейса Runnable
:
public class RunnableExample implements Runnable {
public void run() {
System.out.println("Поток выполняется");
}
public static void main(String[] args) {
RunnableExample runnable = new RunnableExample();
Thread thread = new Thread(runnable);
thread.start();
}
}
Результат выполнения
Упражнения
Упражнение 1: Создание потока с использованием класса Thread
Напишите программу, которая создает и запускает поток, выводящий на экран числа от 1 до 5.
Решение:
public class NumberThread extends Thread {
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
}
public static void main(String[] args) {
NumberThread thread = new NumberThread();
thread.start();
}
}
Объяснение: Программа создает поток, который выводит числа от 1 до 5. Для этого создается класс NumberThread
, наследующий Thread
, и в методе run()
выполняется цикл с выводом чисел.
Упражнение 2: Создание потока с использованием интерфейса Runnable
Напишите программу, которая создает и запускает поток, выводящий на экран сообщение "Hello, World!" пять раз.
Решение:
public class HelloRunnable implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Hello, World!");
}
}
public static void main(String[] args) {
HelloRunnable runnable = new HelloRunnable();
Thread thread = new Thread(runnable);
thread.start();
}
}
Объяснение: Программа создает поток, который выводит сообщение "Hello, World!" пять раз. Для этого создается класс HelloRunnable
, реализующий интерфейс Runnable
, и в методе run()
выполняется цикл с выводом сообщения.