Skip to content

Commit e74ce3a

Browse files
author
Yurii
committed
SYN: with Atomic field
1 parent f2e00ee commit e74ce3a

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
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

11-
public Counter(int value) {
12+
public Counter(AtomicInteger value) {
1213
this.value = value;
1314
}
1415

15-
public synchronized void decreaseValue() {
16+
public void decreaseValue() {
1617
logger.info(String.format(MESSAGE,
1718
"Before decrementing", Thread.currentThread().getName(), value));
18-
value--;
19+
value.decrementAndGet();
1920
logger.info(String.format(MESSAGE,
2021
"After decrementing", Thread.currentThread().getName(), value));
2122
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package core.basesyntax;
22

3+
import java.util.concurrent.atomic.AtomicInteger;
4+
35
public class Main {
46
public static void main(String[] args) {
5-
Counter counter = new Counter(20);
7+
Counter counter = new Counter(new AtomicInteger(20));
68
for (int i = 1; i <= 20; i++) {
79
new MyThread(counter, String.valueOf(i)).start();
810
}

0 commit comments

Comments
 (0)