Repository navigation
Expand file tree
/
Copy pathProducer.java
More file actions
46 lines (37 loc) · 2.32 KB
/
Copy pathProducer.java
File metadata and controls
46 lines (37 loc) · 2.32 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
//Moreover it is required in stewards, that a man be found faithful. (1Cor 4:2)
package com.javarush.task.task26.task2611;
import java.util.concurrent.ConcurrentHashMap;
public class Producer implements Runnable {
private ConcurrentHashMap<String, String> map = new ConcurrentHashMap();
public Producer(ConcurrentHashMap concurrentHashMap) {
this.map = concurrentHashMap;
}
@Override
public void run() {
Thread currentThread = Thread.currentThread();
int i = 0;
while (!currentThread.isInterrupted()) {
try {
i++;
map.put(new Integer(i).toString(), new String("Some text for " + i));
Thread.sleep(500);
} catch (Exception e) {
System.out.println(currentThread.getName() + " thread was terminated");
}
}
}
}
/*
Мир не меняется, меняемся мы
Разберись с ConcurrentHashMap.
В отдельном файле создайте класс Producer, который будет:
1. каждые полсекунды добавлять в ConcurrentHashMap ключ и значение, где ключ — счетчик начиная с 1, значение — фраза: «Some text for i» , пример «Some text for 1«.
2. при возникновении исключения выводить в консоль: «[TREAD_NAME] thread was terminated«, пример «[thread-1] thread was terminated«.
Требования:
1. Класс Producer должен быть создан в отдельном файле.
2. Класс Producer должен реализовывать интерфейс Runnable.
3. Класс Producer должен содержать приватное поле ConcurrentHashMap map.
4. Класс Producer должен содержать конструктор с одним параметром, инициализирующий поле map.
5. Метод run() класса Producer должен каждые полсекунды добавлять в ConcurrentHashMap ключ и значение согласно заданию.
6. Метод run() класса Producer должен при возникновении исключения выводить в консоль "[TREAD_NAME] thread was terminated".
*/