Advertisement
jaVer404

level16.lesson13.bonus02

Sep 23rd, 2015
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.06 KB | None | 0 0
  1. package com.javarush.test.level16.lesson13.bonus02;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. /* Клубок
  7. 1. Создай 5 различных своих нитей c отличным от Thread типом:
  8. 1.1. нить 1 должна бесконечно выполняться;
  9. 1.2. нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException;
  10. 1.3. нить 3 должна каждые полсекунды выводить "Ура";
  11. 1.4. нить 4 должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться;
  12. 1.5. нить 5 должна читать с консоли цифры пока не введено слово "N", а потом вывести в консоль сумму введенных цифр.
  13. 2. В статическом блоке добавь свои нити в List<Thread> threads в перечисленном порядке.
  14. 3. Нити не должны стартовать автоматически.
  15. Подсказка: Нить 4 можно проверить методом isAlive()
  16. */
  17.  
  18. public class Solution {
  19.     public static List<Thread> threads = new ArrayList<Thread>(5);
  20.     static {
  21.         threads.add(new Num1Infinite());
  22.         threads.add(new Num2IterruptedException());
  23.         threads.add(new Num3Ura());
  24.         threads.add(new Num4Stopped());
  25.         threads.add(new Num5CountN());
  26.     }
  27.    
  28. }
  29. /*-----------------------------------------------------*/
  30. package com.javarush.test.level16.lesson13.bonus02;
  31.  
  32. /**
  33.  * Created by ya_zay4eg on 23.09.15.
  34.  */
  35. /*нить 1 должна бесконечно выполняться;*/
  36. public class Num1Infinite extends Thread
  37. {
  38.     @Override
  39.     public void run()
  40.     {
  41.         while (true) {}
  42.     }
  43. }
  44. /*-----------------------------------------------------*/
  45. package com.javarush.test.level16.lesson13.bonus02;
  46.  
  47. /**
  48.  * Created by ya_zay4eg on 23.09.15.
  49.  */
  50.  
  51. /*нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException*/
  52. public class Num2IterruptedException extends Thread
  53. {
  54.     @Override
  55.     public void run()
  56.     {
  57.         try
  58.         {
  59.             throw new InterruptedException();
  60.         }
  61.         catch (InterruptedException e) {
  62.             System.out.println("InterruptedException");
  63.         }
  64.     }
  65. }
  66. /*-----------------------------------------------------*/
  67. package com.javarush.test.level16.lesson13.bonus02;
  68.  
  69. /**
  70.  * Created by ya_zay4eg on 23.09.15.
  71.  */
  72.  
  73. /*нить 3 должна каждые полсекунды выводить "Ура";*/
  74. public class Num3Ura extends Thread
  75. {
  76.     @Override
  77.     public void run()
  78.     {
  79.         try
  80.         {
  81.             while (true) {
  82.             System.out.println("Ура");
  83.             sleep(500);}
  84.         }
  85.         catch (InterruptedException e) {}
  86.  
  87.     }
  88. }
  89. /*-----------------------------------------------------*/
  90. package com.javarush.test.level16.lesson13.bonus02;
  91.  
  92. /**
  93.  * Created by ya_zay4eg on 23.09.15.
  94.  */
  95.  
  96. /*нить 4 должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться;*/
  97.  
  98. public class Num4Stopped extends Thread implements Message
  99. {
  100.     @Override
  101.     public void run()
  102.     {
  103.         while (!isInterrupted()) {}
  104.  
  105.     }
  106.  
  107.     @Override
  108.     public void showWarning()
  109.     {
  110.         try
  111.         {
  112.             interrupt();
  113.             join();
  114.         } catch (InterruptedException e) {}
  115.  
  116.     }
  117. }
  118. /*-----------------------------------------------------*/
  119. package com.javarush.test.level16.lesson13.bonus02;
  120.  
  121. import java.io.BufferedReader;
  122. import java.io.InputStreamReader;
  123.  
  124. /**
  125.  * Created by ya_zay4eg on 23.09.15.
  126.  */
  127.  
  128. /*нить 5 должна читать с консоли цифры пока не введено слово "N", а потом вывести в консоль сумму введенных цифр.*/
  129.  
  130. public class Num5CountN extends Thread
  131. {
  132.     public static void main(String[] args)
  133.     {
  134.         new Num5CountN().start();
  135.     }
  136.  
  137.     @Override
  138.     public void run()
  139.     {
  140.         boolean stopThis = false;
  141.         int sum = 0;
  142.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  143.         String userInput;
  144.         while (!stopThis) {
  145.             try
  146.             {
  147.                 userInput = reader.readLine();
  148.                 if (userInput.equals("N")) {
  149.                     stopThis = true;
  150.                     reader.close();
  151.                     System.out.println(sum);
  152.                 }
  153.                 else  {
  154.                     sum = sum + Integer.parseInt(userInput);
  155.                 }
  156.             } catch (Exception e) {}
  157.  
  158.         }
  159.     }
  160. }
  161. /*-----------------------------------------------------*/
  162. package com.javarush.test.level16.lesson13.bonus02;
  163.  
  164. public interface Message {
  165.     void showWarning();
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement