JavaRush /Курсы /Java Core /Задачи на interrupt

Задачи на interrupt

Java Core
6 уровень , 10 лекция
Открыта

— Привет, Амиго!

9
Задача
Java Core, 6 уровень, 10 лекция
Недоступна
Считаем секунды
1. Напиши реализацию метода run в нити Stopwatch (секундомер). 2. Stopwatch должен посчитать количество секунд, которое прошло от создания нити до ввода строки. 3. Выведи количество секунд в консоль.
18
Задача
Java Core, 6 уровень, 10 лекция
Недоступна
Отсчет на гонках
1. Разберись, что делает программа. 2. Реализуй логику метода run так, чтобы каждую секунду через пробел выдавался отсчет начиная с numSeconds до 1, а потом слово [Марш!] (см примеры). 3. Если нить работает 3.5 секунды или более, прерви ее методом interrupt и внутри нити выведи в консоль слово [Пр
4
Задача
Java Core, 6 уровень, 10 лекция
Недоступна
Снова interrupt
Создай нить TestThread. В методе main создай экземпляр нити, запусти, а потом прерви ее используя метод interrupt().
9
Задача
Java Core, 6 уровень, 10 лекция
Недоступна
А без interrupt слабо?
Разберись, как работает программа. Сделай так, чтобы в методе ourInterruptMethod можно было сделать так, чтобы нить TestThread завершилась сама. Нельзя использовать метод interrupt.
9
Задача
Java Core, 6 уровень, 10 лекция
Недоступна
Один для всех, все - для одного
1. Разберись, как работает программа. 1.1. Обрати внимание, что объект Water - один для всех нитей. 2. Реализуй метод ourInterruptMethod, чтобы он прерывал все нити из threads. 3. В методе run исправь значения переменных: 3.1. isCurrentThreadInterrupted - должна равняться значению метода isInterrup
Комментарии (255)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #3585174 Уровень 33
22 августа 2025
Like
28 октября 2025
а когда не Like
ShadyLine Уровень 30
4 июля 2025
мало понятного...скип
Жуков Богдан Уровень 26
22 июня 2025
Интересная штука была с задачей "Один для всех, все - для одного". Выполнил все условия задачи - проверяю. Выдало ошибку "Вы используете бесконечный цикл". Потом смотрю, не пойму где косякнул. Решил посмотреть правильно решение. На удивление у меня было все тоже самое, что и в правильном решении (мелочи какие-то часто отличаются). Запустил сначала с правильным решением - все отработало. Потом перешел в свой код - опять все отработало.
SergeyPavlochev Уровень 29
29 мая 2025
Список требований в описании задачи по-хорошему бы скрыть и открывать только после N-го кол-ва неудачных попыток или по желанию (кнопка - открыть Да/Нет). Иначе даже думать порой не приходится - читаешь требования, пишешь код как там описано и вауля.
JRMarshal Уровень 28
11 июля 2025
я как раз читаю когда требование не прошло:) а их часто не пишут в условии я понимаю, есть и те, до которых надо было бы самим додуматься... но бывают же и те, до которых мы сами редко додумаемся но чаще исходя из одних условий можно решить все
Vyacheslav Уровень 30 Expert
12 мая 2025
Пацаны, а часики тикают, они блин не стоят, джависта жизнь не легкая...
28 октября 2025
аххахахах
Anonymous #463526 Уровень 1
18 апреля 2025
Возможно кому-то поможет понять что вообще происходит такой код:

public class Solution {
    public static volatile int numSeconds = 4;

    public static void main(String[] args) throws InterruptedException {
        RacingClock clock = new RacingClock();
        Thread.sleep(500);
        System.out.println("работает main - 1");
        Thread.sleep(500);
        System.out.println("работает main - 2");
        Thread.sleep(500);
        System.out.println("работает main - 3");
        Thread.sleep(500);
        System.out.println("работает main - 4");
        Thread.sleep(500);
        System.out.println("работает main - 5");
        Thread.sleep(500);
        System.out.println("работает main - 6");
        Thread.sleep(500);
        System.out.println("работает main - 7");
        clock.interrupt();
        if (numSeconds == 0) {
            System.out.println("Марш!");
        }
    }

    public static class RacingClock extends Thread {
        public RacingClock() {
            start();
        }

        public void run() {
            try {
                while (numSeconds != 0) {
                    System.out.println(numSeconds + " ");
                    Thread.sleep(300);
                    System.out.println("работает clock - 1");
                    Thread.sleep(300);
                    System.out.println("работает clock - 2");
                    Thread.sleep(400);
                    System.out.println("работает clock - 3");
                    numSeconds--;
                }
            } catch (InterruptedException ie) {
                System.out.println("Прервано!");
            }
        }
    }
}

Victor Уровень 36
11 апреля 2025
Наверное есть какой-то более правильный способ изучения java (может кто знает?), а эти задачи придуманы просто для развития мозга.
savinov-vy Уровень 27
27 июля 2025
Смотря что хочешь: первоначально java тут хорошо. Задачи с алгоритмических собесов лучше на leet code. Но на leet code прямо жёсткий вынос мозга, даже после просмотра и разбора видео по задаче, лучше через месяцок её ещё раз попробовать прорешать задачу. Для собесов ещё spring boot нужен всегда.
Victor Уровень 36
11 апреля 2025
"Отсчет на гонках" - вот так попроще решение - run такой: try { while(numSeconds != 0) { System.out.print(numSeconds + " "); Thread.sleep(1000); numSeconds--; } } catch (InterruptedException e) { System.out.print(" Прервано!"); } а main - такой: Thread.sleep(3500); clock.interrupt(); if (numSeconds == 0) System.out.print("Марш!");
Дарья Уровень 30
11 февраля 2025
интересная статья на английском про volatile
{Java_Shark} Уровень 36
15 октября 2024
++