Skip to content

Commit baf1a99

Browse files
committed
decrease
1 parent 42476ff commit baf1a99

3 files changed

Lines changed: 48 additions & 5 deletions

File tree

logs/app.log

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 6, counter value 20
2+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 19, counter value 20
3+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 16, counter value 20
4+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 1, counter value 20
5+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 10, counter value 20
6+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 17, counter value 20
7+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 11, counter value 20
8+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 18, counter value 20
9+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 20, counter value 20
10+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 19, counter value 19
11+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 9, counter value 20
12+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 14, counter value 20
13+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 18, counter value 13
14+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 3, counter value 20
15+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 5, counter value 20
16+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 4, counter value 20
17+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 20, counter value 12
18+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 13, counter value 20
19+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 9, counter value 11
20+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 7, counter value 20
21+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 2, counter value 20
22+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 3, counter value 9
23+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 14, counter value 10
24+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 8, counter value 20
25+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 15, counter value 20
26+
INFO core.basesyntax.Counter:19 Before decrementing, Thread # 12, counter value 20
27+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 4, counter value 7
28+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 5, counter value 8
29+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 11, counter value 14
30+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 17, counter value 15
31+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 8, counter value 5
32+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 15, counter value 4
33+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 16, counter value 18
34+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 10, counter value 16
35+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 1, counter value 17
36+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 13, counter value 3
37+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 12, counter value 1
38+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 7, counter value 2
39+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 2, counter value 6
40+
INFO core.basesyntax.Counter:22 After decrementing, Thread # 6, counter value 0
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
11
package core.basesyntax;
22

3+
import java.util.concurrent.atomic.AtomicInteger;
34
import org.apache.logging.log4j.LogManager;
45
import org.apache.logging.log4j.Logger;
56

67
public class Counter {
78
private static final Logger logger = LogManager.getLogger(Counter.class);
89
private static final String MESSAGE = "%20s, Thread # %2s, counter value %2d";
9-
private int value;
10+
private AtomicInteger value;
1011

1112
public Counter(int value) {
12-
this.value = value;
13+
this.value = new AtomicInteger(value);
1314
}
1415

1516
public void decreaseValue() {
17+
int before = this.value.get();
1618
logger.info(String.format(MESSAGE,
17-
"Before decrementing", Thread.currentThread().getName(), value));
18-
value--;
19+
"Before decrementing", Thread.currentThread().getName(), before));
20+
int after = value.decrementAndGet();
1921
logger.info(String.format(MESSAGE,
20-
"After decrementing", Thread.currentThread().getName(), value));
22+
"After decrementing", Thread.currentThread().getName(), after));
2123
}
2224
}

src/main/java/core/basesyntax/Main.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public static void main(String[] args) {
55
Counter counter = new Counter(20);
66
for (int i = 1; i <= 20; i++) {
77
new MyThread(counter, String.valueOf(i)).start();
8+
89
}
910
}
1011
}

0 commit comments

Comments
 (0)