Advertisement
jaVer404

level16.lesson05.task05

Sep 9th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.05 KB | None | 0 0
  1. package com.javarush.test.level16.lesson05.task05;
  2.  
  3. /* Расставь вызовы методов join()
  4. 1. Разберитесь, что делает программа.
  5. 2. Расставь вызовы методов join() так, чтобы для каждой кошки выполнялось следующее:
  6. 2.1. Сначала кошка рожает котят.
  7. 2.2. Потом все котята вылазят из корзинки в произвольном порядке.
  8. 2.3. В конце кошка собирает их назад в корзинку.
  9. 2.4. Все события для одной кошки могут быть перемешаны с событями для другой кошки.
  10. 2.5. Добавить сон котят (200 мс) в investigateWorld
  11. */
  12.  
  13. public class Solution {
  14.     public static void main(String[] args) throws InterruptedException {
  15.         Cat cat1 = new Cat("Мурка");
  16.         cat1.join();
  17.         Cat cat2 = new Cat("Пушинка");
  18.         cat2.join();
  19.     }
  20. /*-------------------------START OF CAT CLASS----------------------------------------------------*/
  21.     public static class Cat extends Thread {
  22.         protected Kitten kitten1;
  23.         protected Kitten kitten2;
  24.  
  25.         public Cat(String name) {
  26.             super(name);
  27.             kitten1 = new Kitten("Котенок 1, мама - " + getName());
  28.             kitten2 = new Kitten("Котенок 2, мама - " + getName());
  29.             start();
  30.         }
  31.  
  32.  
  33.         public void run() {
  34.             System.out.println(getName() + " родила 2 котенка");
  35.             try {
  36.                 initAllKitten();
  37.             } catch (InterruptedException e) {
  38.             }
  39.             System.out.println(getName() + ": Все котята в корзинке. " + getName() + " собрала их назад");
  40.         }
  41.  
  42.  
  43.         private void initAllKitten() throws InterruptedException {
  44.             kitten1.start();
  45.             kitten2.start();
  46.             kitten1.join();
  47.             kitten2.join();
  48.         }
  49.     }
  50. /*-------------------------END OF CAT CLASS----------------------------------------------------*/
  51.  
  52. /*-------------------------START OF KITTEN CLASS----------------------------------------------------*/
  53.     public static class Kitten extends Thread {
  54.         public Kitten(String name) {
  55.             super(name);
  56.         }
  57. /*---------------------------------------------------------------------------------*/
  58.         public void run() {
  59.             System.out.println(getName() + ", вылез из корзинки");
  60.             try {investigateWorld();}
  61.             catch (InterruptedException e) {}
  62.         }
  63. /*---------------------------------------------------------------------------------*/
  64.     }
  65. /*-------------------------END OF KITTEN CLASS----------------------------------------------------*/
  66.  
  67.     private static void investigateWorld() throws InterruptedException{
  68. /*2.5. Добавить сон котят (200 мс) в investigateWorld*/
  69.         Thread.sleep(200);
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement