Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level16.lesson05.task05;
- /* Расставь вызовы методов join()
- 1. Разберитесь, что делает программа.
- 2. Расставь вызовы методов join() так, чтобы для каждой кошки выполнялось следующее:
- 2.1. Сначала кошка рожает котят.
- 2.2. Потом все котята вылазят из корзинки в произвольном порядке.
- 2.3. В конце кошка собирает их назад в корзинку.
- 2.4. Все события для одной кошки могут быть перемешаны с событями для другой кошки.
- 2.5. Добавить сон котят (200 мс) в investigateWorld
- */
- public class Solution {
- public static void main(String[] args) throws InterruptedException {
- Cat cat1 = new Cat("Мурка");
- cat1.join();
- Cat cat2 = new Cat("Пушинка");
- cat2.join();
- }
- /*-------------------------START OF CAT CLASS----------------------------------------------------*/
- 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();
- kitten2.start();
- kitten1.join();
- kitten2.join();
- }
- }
- /*-------------------------END OF CAT CLASS----------------------------------------------------*/
- /*-------------------------START OF KITTEN CLASS----------------------------------------------------*/
- public static class Kitten extends Thread {
- public Kitten(String name) {
- super(name);
- }
- /*---------------------------------------------------------------------------------*/
- public void run() {
- System.out.println(getName() + ", вылез из корзинки");
- try {investigateWorld();}
- catch (InterruptedException e) {}
- }
- /*---------------------------------------------------------------------------------*/
- }
- /*-------------------------END OF KITTEN CLASS----------------------------------------------------*/
- private static void investigateWorld() throws InterruptedException{
- /*2.5. Добавить сон котят (200 мс) в investigateWorld*/
- Thread.sleep(200);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement