Найти тему
DEBAGanov

Java 1005. Как приостановить выполнение потока?

Для того, чтобы приостановить выполнение потока в Java, можно использовать метод Thread.sleep(). Этот метод приостанавливает выполнение текущего потока на заданное количество миллисекунд. Вот пример его использования:

try {
Thread.sleep(1000); // Приостановить поток на 1 секунду
} catch (InterruptedException e) {
// Обработка исключения }

Также можно использовать метод wait() и notify() для передачи управления другому потоку. Вот пример использования этих методов:

// Создаем объект монитора Object monitor = new Object();

// Поток 1 Thread thread1 = new Thread(() -> {
synchronized (monitor) {
try {
// Приостанавливаем выполнение потока и освобождаем монитор
monitor.wait();
} catch (InterruptedException e) {
// Обработка исключения }

// Выполняем необходимые действия после возобновления выполнения потока }
});

// Поток 2 Thread thread2 = new Thread(() -> {
synchronized (monitor) {
// Выполняем необходимые действия
// Уведомляем поток 1 о том, что можно продолжить выполнение monitor.notify();
}
});

Этот код демонстрирует, как можно передавать управление между потоками, используя методы wait() и notify(). Оба потока синхронизируются на объекте монитора, и поток 2 уведомляет поток 1 о том, что можно продолжить выполнение, вызывая метод notify(). После этого поток 1 продолжает свое выполнение и выполняет необходимые действия.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov