From abfb57a9f031f83dac8097d3cdc211b3810b8760 Mon Sep 17 00:00:00 2001 From: Denys Mazurenko <0gur4ik3992@gmail.com> Date: Tue, 13 May 2025 00:02:59 +0300 Subject: [PATCH] fixed race condition problem --- src/main/java/core/basesyntax/Counter.java | 2 +- src/main/java/core/basesyntax/Main.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/core/basesyntax/Counter.java b/src/main/java/core/basesyntax/Counter.java index 4af46bd4..01cf6e02 100644 --- a/src/main/java/core/basesyntax/Counter.java +++ b/src/main/java/core/basesyntax/Counter.java @@ -6,7 +6,7 @@ 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 volatile int value; public Counter(int value) { this.value = value; diff --git a/src/main/java/core/basesyntax/Main.java b/src/main/java/core/basesyntax/Main.java index 48a2c730..a30230a0 100644 --- a/src/main/java/core/basesyntax/Main.java +++ b/src/main/java/core/basesyntax/Main.java @@ -1,10 +1,13 @@ package core.basesyntax; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws InterruptedException { Counter counter = new Counter(20); + Thread a; for (int i = 1; i <= 20; i++) { - new MyThread(counter, String.valueOf(i)).start(); + a = new MyThread(counter, String.valueOf(i)); + a.start(); + a.join(); } } }