Для того, чтобы приостановить выполнение потока в 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