-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
142 lines (108 loc) · 4.6 KB
/
Solution.java
File metadata and controls
142 lines (108 loc) · 4.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//But this happened so that the word may be fulfilled which was written in their law, 'They hated me without a cause.' (John 15:25)
package com.javarush.task.task16.task1610;
/*
Расставь вызовы методов join()
*/
public class Solution {
public static void main(String[] args) throws InterruptedException {
Cat cat1 = new Cat("Мурка");
Cat cat2 = new Cat("Пушинка");
}
private static void investigateWorld() {
try{
Thread.sleep(200);
}catch(InterruptedException e) {e.printStackTrace();}
}
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();
kitten1.join();
kitten2.join();
} catch (InterruptedException e) {
}
System.out.println(getName() + ": Все котята в корзинке. " + getName() + " собрала их назад");
}
private void initAllKitten() throws InterruptedException {
kitten1.start();
kitten2.start();
}
}
public static class Kitten extends Thread {
public Kitten(String name) {
super(name);
}
public void run() {
System.out.println(getName() + ", вылез из корзинки");
investigateWorld();
}
}
}
/*
Расставь вызовы методов join()
1. Разберись, что делает программа.
2. Расставь вызовы методов join() так, чтобы для каждой кошки выполнялось следующее:
2.1. Сначала кошка рожает котят.
2.2. Потом все котята вылазят из корзинки в произвольном порядке.
2.3. В конце кошка собирает их назад в корзинку.
2.4. Все события для одной кошки могут быть перемешаны с событиями для другой кошки.
2.5. Добавить сон котят (200 мс) в investigateWorld.
Требования:
1. У каждого котенка (объекта типа Kitten) должен быть вызван метод join.
2. Метод investigateWorld должен обеспечивать сон котенка на 200 мс. Используй метод Thread.sleep(200).
3. Программа должна создавать две кошки и четыре котенка.
4. Методы, которые отвечают за вывод в консоль, не изменять.
5. Вывод программы должен отображать выполнение требований условия.
package com.javarush.task.task16.task1610;
*
Расставь вызовы методов join()
*
public class Solution {
public static void main(String[] args) throws InterruptedException {
Cat cat1 = new Cat("Мурка");
Cat cat2 = new Cat("Пушинка");
}
private static void investigateWorld() {
}
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();
}
}
public static class Kitten extends Thread {
public Kitten(String name) {
super(name);
}
public void run() {
System.out.println(getName() + ", вылез из корзинки");
investigateWorld();
}
}
}
*/