diff --git a/README.md b/README.md index 38438a65..17372c90 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ We are logging the value before and after each decrement, and now we see that th ``` INFO core.basesyntax.Counter:16 Before decrementing, Thread # 15, counter value 20 -INFO core.basesyntax.Counter:16 Before decrementing, Thread # 8, counter value 20 +INFO core.basesyntax.Counter[src](src):16 Before decrementing, Thread # 8, counter value 20 INFO core.basesyntax.Counter:16 Before decrementing, Thread # 12, counter value 20 INFO core.basesyntax.Counter:16 Before decrementing, Thread # 18, counter value 20 INFO core.basesyntax.Counter:16 Before decrementing, Thread # 14, counter value 20 diff --git a/src/main/java/core/basesyntax/Counter.java b/src/main/java/core/basesyntax/Counter.java index 4af46bd4..5429d3e4 100644 --- a/src/main/java/core/basesyntax/Counter.java +++ b/src/main/java/core/basesyntax/Counter.java @@ -1,22 +1,23 @@ package core.basesyntax; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Counter { private static final Logger logger = LogManager.getLogger(Counter.class); private static final String MESSAGE = "%20s, Thread # %2s, counter value %2d"; - private int value; + private AtomicInteger value; public Counter(int value) { - this.value = value; + this.value = new AtomicInteger(value); } public void decreaseValue() { logger.info(String.format(MESSAGE, - "Before decrementing", Thread.currentThread().getName(), value)); - value--; + "Before decrementing", Thread.currentThread().getName(), value.get())); + value.incrementAndGet(); logger.info(String.format(MESSAGE, - "After decrementing", Thread.currentThread().getName(), value)); + "After decrementing", Thread.currentThread().getName(), value.get())); } }