|
| 1 | + |
| 2 | +// For whatever things were written before were written for our learning, that through patience and through encouragement of the Scriptures we might have hope. (Romans 15:4) |
| 3 | + |
| 4 | + |
| 5 | +package com.javarush.task.task16.task1617; |
| 6 | + |
| 7 | +/* |
| 8 | +Отсчет на гонках |
| 9 | +*/ |
| 10 | + |
| 11 | +public class Solution { |
| 12 | + public static volatile int countSeconds = 3; |
| 13 | + |
| 14 | + public static void main(String[] args) throws InterruptedException { |
| 15 | + RacingClock clock = new RacingClock(); |
| 16 | + try {//add your code here - добавь код тут |
| 17 | + Thread.sleep(3500); |
| 18 | + }catch (InterruptedException e) {e.printStackTrace();} |
| 19 | + clock.interrupt(); |
| 20 | + } |
| 21 | + |
| 22 | + public static class RacingClock extends Thread { |
| 23 | + public RacingClock() { |
| 24 | + start(); |
| 25 | + } |
| 26 | + |
| 27 | + public void run() { |
| 28 | + while (countSeconds > 0 || isInterrupted()) { |
| 29 | + try { |
| 30 | + System.out.print(countSeconds-- + " "); |
| 31 | + Thread.sleep(1000); |
| 32 | + } catch (InterruptedException e) { |
| 33 | + System.out.println("Прервано!"); |
| 34 | + return; |
| 35 | + } |
| 36 | + } |
| 37 | + System.out.println ("Марш!"); |
| 38 | + } |
| 39 | + } |
| 40 | +} |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +/* |
| 46 | +Отсчет на гонках |
| 47 | +1. Разберись, что делает программа. |
| 48 | +2. Реализуй логику метода run так, чтобы каждую секунду через пробел |
| 49 | +выдавался отсчет начиная с countSeconds до 1, а потом слово [Марш!] (см примеры). |
| 50 | +3. Если нить работает 3.5 секунды или более, прерви ее методом interrupt и внутри нити выведи в консоль слово [Прервано!]. |
| 51 | +
|
| 52 | +Пример для countSeconds=4 : |
| 53 | +«4 3 2 1 Прервано!» |
| 54 | +
|
| 55 | +4. Если нить работает менее 3.5 секунд, она должна завершиться сама. |
| 56 | +Пример для countSeconds=3 : |
| 57 | +«3 2 1 Марш!» |
| 58 | +
|
| 59 | +PS: метод sleep выбрасывает InterruptedException. |
| 60 | +
|
| 61 | +
|
| 62 | +Требования: |
| 63 | +1. Метод run класса RacingClock должен содержать цикл. |
| 64 | +2. Объект класса RacingClock должен каждую секунду уменьшать значение переменной countSeconds на единицу. |
| 65 | +3. Метод main должен вызывать Thread.sleep(3500). |
| 66 | +4. Метод main должен вызывать метод interrupt у объекта clock. |
| 67 | +5. Если countSeconds равно 3, то программа должна вывести "3 2 1 Марш!". |
| 68 | +6. Если countSeconds равно 4, то программа должна вывести "4 3 2 1 Прервано!". |
| 69 | +
|
| 70 | +package com.javarush.task.task16.task1617; |
| 71 | +
|
| 72 | +* |
| 73 | +Отсчет на гонках |
| 74 | +* |
| 75 | +
|
| 76 | +public class Solution { |
| 77 | + public static volatile int countSeconds = 3; |
| 78 | +
|
| 79 | + public static void main(String[] args) throws InterruptedException { |
| 80 | + RacingClock clock = new RacingClock(); |
| 81 | + //add your code here - добавь код тут |
| 82 | + } |
| 83 | +
|
| 84 | + public static class RacingClock extends Thread { |
| 85 | + public RacingClock() { |
| 86 | + start(); |
| 87 | + } |
| 88 | +
|
| 89 | + public void run() { |
| 90 | + //add your code here - добавь код тут |
| 91 | + } |
| 92 | + } |
| 93 | +} |
| 94 | +
|
| 95 | +
|
| 96 | +*/ |
0 commit comments