Skip to content

Commit 71763b1

Browse files
committed
add threads decrease counter
1 parent 42476ff commit 71763b1

3 files changed

Lines changed: 43 additions & 2 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.idea/*
22
*.iml
33
target/*
4+

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:16 Before decrementing, Thread # 1, counter value 20
2+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 1, counter value 19
3+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 20, counter value 19
4+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 20, counter value 18
5+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 19, counter value 18
6+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 19, counter value 17
7+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 18, counter value 17
8+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 18, counter value 16
9+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 17, counter value 16
10+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 17, counter value 15
11+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 16, counter value 15
12+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 16, counter value 14
13+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 15, counter value 14
14+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 15, counter value 13
15+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 14, counter value 13
16+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 14, counter value 12
17+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 13, counter value 12
18+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 13, counter value 11
19+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 12, counter value 11
20+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 12, counter value 10
21+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 11, counter value 10
22+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 11, counter value 9
23+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 10, counter value 9
24+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 10, counter value 8
25+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 9, counter value 8
26+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 9, counter value 7
27+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 8, counter value 7
28+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 8, counter value 6
29+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 7, counter value 6
30+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 7, counter value 5
31+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 6, counter value 5
32+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 6, counter value 4
33+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 5, counter value 4
34+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 5, counter value 3
35+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 4, counter value 3
36+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 4, counter value 2
37+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 3, counter value 2
38+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 3, counter value 1
39+
INFO core.basesyntax.Counter:16 Before decrementing, Thread # 2, counter value 1
40+
INFO core.basesyntax.Counter:19 After decrementing, Thread # 2, counter value 0

src/main/java/core/basesyntax/Counter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
public class Counter {
77
private static final Logger logger = LogManager.getLogger(Counter.class);
88
private static final String MESSAGE = "%20s, Thread # %2s, counter value %2d";
9-
private int value;
9+
private volatile int value;
1010

1111
public Counter(int value) {
1212
this.value = value;
1313
}
1414

15-
public void decreaseValue() {
15+
public synchronized void decreaseValue() {
1616
logger.info(String.format(MESSAGE,
1717
"Before decrementing", Thread.currentThread().getName(), value));
1818
value--;

0 commit comments

Comments
 (0)