Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level16.lesson13.bonus02;
- import java.util.ArrayList;
- import java.util.List;
- /* Клубок
- 1. Создай 5 различных своих нитей c отличным от Thread типом:
- 1.1. нить 1 должна бесконечно выполняться;
- 1.2. нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException;
- 1.3. нить 3 должна каждые полсекунды выводить "Ура";
- 1.4. нить 4 должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться;
- 1.5. нить 5 должна читать с консоли цифры пока не введено слово "N", а потом вывести в консоль сумму введенных цифр.
- 2. В статическом блоке добавь свои нити в List<Thread> threads в перечисленном порядке.
- 3. Нити не должны стартовать автоматически.
- Подсказка: Нить 4 можно проверить методом isAlive()
- */
- public class Solution {
- public static List<Thread> threads = new ArrayList<Thread>(5);
- static {
- threads.add(new Num1Infinite());
- threads.add(new Num2IterruptedException());
- threads.add(new Num3Ura());
- threads.add(new Num4Stopped());
- threads.add(new Num5CountN());
- }
- }
- /*-----------------------------------------------------*/
- package com.javarush.test.level16.lesson13.bonus02;
- /**
- * Created by ya_zay4eg on 23.09.15.
- */
- /*нить 1 должна бесконечно выполняться;*/
- public class Num1Infinite extends Thread
- {
- @Override
- public void run()
- {
- while (true) {}
- }
- }
- /*-----------------------------------------------------*/
- package com.javarush.test.level16.lesson13.bonus02;
- /**
- * Created by ya_zay4eg on 23.09.15.
- */
- /*нить 2 должна выводить "InterruptedException" при возникновении исключения InterruptedException*/
- public class Num2IterruptedException extends Thread
- {
- @Override
- public void run()
- {
- try
- {
- throw new InterruptedException();
- }
- catch (InterruptedException e) {
- System.out.println("InterruptedException");
- }
- }
- }
- /*-----------------------------------------------------*/
- package com.javarush.test.level16.lesson13.bonus02;
- /**
- * Created by ya_zay4eg on 23.09.15.
- */
- /*нить 3 должна каждые полсекунды выводить "Ура";*/
- public class Num3Ura extends Thread
- {
- @Override
- public void run()
- {
- try
- {
- while (true) {
- System.out.println("Ура");
- sleep(500);}
- }
- catch (InterruptedException e) {}
- }
- }
- /*-----------------------------------------------------*/
- package com.javarush.test.level16.lesson13.bonus02;
- /**
- * Created by ya_zay4eg on 23.09.15.
- */
- /*нить 4 должна реализовать интерфейс Message, при вызове метода showWarning нить должна останавливаться;*/
- public class Num4Stopped extends Thread implements Message
- {
- @Override
- public void run()
- {
- while (!isInterrupted()) {}
- }
- @Override
- public void showWarning()
- {
- try
- {
- interrupt();
- join();
- } catch (InterruptedException e) {}
- }
- }
- /*-----------------------------------------------------*/
- package com.javarush.test.level16.lesson13.bonus02;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- /**
- * Created by ya_zay4eg on 23.09.15.
- */
- /*нить 5 должна читать с консоли цифры пока не введено слово "N", а потом вывести в консоль сумму введенных цифр.*/
- public class Num5CountN extends Thread
- {
- public static void main(String[] args)
- {
- new Num5CountN().start();
- }
- @Override
- public void run()
- {
- boolean stopThis = false;
- int sum = 0;
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- String userInput;
- while (!stopThis) {
- try
- {
- userInput = reader.readLine();
- if (userInput.equals("N")) {
- stopThis = true;
- reader.close();
- System.out.println(sum);
- }
- else {
- sum = sum + Integer.parseInt(userInput);
- }
- } catch (Exception e) {}
- }
- }
- }
- /*-----------------------------------------------------*/
- package com.javarush.test.level16.lesson13.bonus02;
- public interface Message {
- void showWarning();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement