Created
February 12, 2014 15:48
-
-
Save Vox1oot/8958019 to your computer and use it in GitHub Desktop.
package com.javarush.test.level16.lesson05.task05
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javarush.test.level16.lesson05.task05; | |
/* Расставь вызовы методов join() | |
1. Разберитесь, что делает программа. | |
2. Расставь вызовы методов join() так, чтобы для каждой кошки выполнялось следующее: | |
2.1. Сначала кошка рожает котят. | |
2.2. Потом все котята вылазят из корзинки в произвольном порядке. | |
2.3. В конце кошка собирает их назад в корзинку. | |
2.4. Все события для одной кошки могут быть перемешаны с событями для другой кошки. | |
*/ | |
public class Solution { | |
public static void main(String[] args) throws InterruptedException { | |
Cat cat1 = new Cat("Мурка"); | |
cat1.join(); | |
Cat cat2 = new Cat("Пушинка"); | |
} | |
public static class Cat extends Thread { | |
protected Kitten kitten1; | |
protected Kitten kitten2; | |
public Cat(String name) { | |
super(name); | |
kitten1 = new Kitten("Котенок 1, мама - " + getName()); | |
kitten2 = new Kitten("Котенок 2, мама - " + getName()); | |
start(); | |
} | |
public void run() { | |
System.out.println(getName() + " родила 2 котенка"); | |
try { | |
initAllKitten(); | |
} catch (InterruptedException e) { | |
} | |
System.out.println(getName() + ": Все котята в корзинке. " + getName() + " собрала их назад"); | |
} | |
private void initAllKitten() throws InterruptedException { | |
kitten1.start(); | |
kitten1.join(); | |
kitten2.start(); | |
kitten2.join(); | |
} | |
} | |
public static class Kitten extends Thread { | |
public Kitten(String name) { | |
super(name); | |
} | |
public void run() { | |
System.out.println(getName() + ", вылез из корзинки"); | |
investigateWorld(); | |
} | |
} | |
private static void investigateWorld() { | |
try { | |
Thread.sleep(200); | |
} catch (InterruptedException e) { | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment