Skip to content

Instantly share code, notes, and snippets.

@Vox1oot
Created February 12, 2014 15:48
Show Gist options
  • Save Vox1oot/8958019 to your computer and use it in GitHub Desktop.
Save Vox1oot/8958019 to your computer and use it in GitHub Desktop.
package com.javarush.test.level16.lesson05.task05
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