Многопоточное программирование - это парадигма программирования, которая позволяет одновременно выполнять несколько потоков исполнения в рамках одного процесса. Это позволяет увеличить параллелизм в программе и повысить скорость ее выполнения.
Java поддерживает многопоточное программирование с помощью классов и интерфейсов, предоставляемых в стандартной библиотеке Java. Например, класс Thread позволяет создавать и запускать новые потоки исполнения. Кроме того, Java также поддерживает синхронизацию и координацию между потоками с помощью методов synchronized, wait() и notify().
Вот пример кода на Java, который демонстрирует многопоточное программирование:
public class Main {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyRunnable("Hello"));
// создаем первый поток, передавая ему объект MyRunnable с аргументом "Hello"
Thread thread2 = new Thread(new MyRunnable("World"));
// создаем второй поток, передавая ему объект MyRunnable с аргументом "World"
thread1.start(); // запускаем первый поток
thread2.start(); // запускаем второй поток }
}
class MyRunnable implements Runnable {
private String message;
// сообщение, которое будет выводиться потоком
public MyRunnable(String message) {
this.message = message;
}
@Override public void run() {
for (int i = 0; i < 5; i++) {
// выводим сообщение 5 раз
System.out.println(message + " " + i);
try {
Thread.sleep(1000);
// приостанавливаем выполнение потока на 1 секунду
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
В этом примере мы создаем два потока исполнения с помощью класса Thread, каждый из которых выполняет объект MyRunnable, реализующий интерфейс Runnable. В методе run() класса MyRunnable мы выводим сообщение и приостанавливаем выполнение потока на 1 секунду с помощью метода sleep().
Затем мы запускаем оба потока исполнения с помощью метода start() класса Thread, который вызывает метод run() объекта MyRunnable.
Результат выполнения программы может быть таким:
Hello 0
World 0
Hello 1
World 1
Hello 2
World 2
Hello 3
World 3
Hello 4
World 4
Как видно из результатов, оба потока исполнения выполняются параллельно, и сообщения выводятся по очереди. Кроме того, мы используем метод sleep() для остановки каждого потока на 1 секунду, чтобы демонстрировать параллельное выполнение.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov