From c9f01bb6eaa542ca6301964b48d34cb44ab4c7cc Mon Sep 17 00:00:00 2001 From: Serhii Holenkov Date: Thu, 19 Jun 2025 07:22:40 +0300 Subject: [PATCH 1/2] Added logs --- logs/app.log | 40 ++++++++++++++++++++++ src/main/java/core/basesyntax/Counter.java | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 logs/app.log diff --git a/logs/app.log b/logs/app.log new file mode 100644 index 00000000..3c63b8de --- /dev/null +++ b/logs/app.log @@ -0,0 +1,40 @@ +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 1, counter value 20 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 1, counter value 19 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 20, counter value 19 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 20, counter value 18 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 19, counter value 18 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 19, counter value 17 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 18, counter value 17 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 18, counter value 16 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 17, counter value 16 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 17, counter value 15 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 16, counter value 15 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 16, counter value 14 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 15, counter value 14 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 15, counter value 13 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 14, counter value 13 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 14, counter value 12 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 11, counter value 12 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 11, counter value 11 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 10, counter value 11 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 10, counter value 10 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 13, counter value 10 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 13, counter value 9 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 12, counter value 9 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 12, counter value 8 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 9, counter value 8 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 9, counter value 7 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 8, counter value 7 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 8, counter value 6 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 7, counter value 6 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 7, counter value 5 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 6, counter value 5 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 6, counter value 4 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 5, counter value 4 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 5, counter value 3 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 4, counter value 3 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 4, counter value 2 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 3, counter value 2 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 3, counter value 1 +INFO core.basesyntax.Counter:16 Before decrementing, Thread # 2, counter value 1 +INFO core.basesyntax.Counter:19 After decrementing, Thread # 2, counter value 0 diff --git a/src/main/java/core/basesyntax/Counter.java b/src/main/java/core/basesyntax/Counter.java index 4af46bd4..feb1ad7d 100644 --- a/src/main/java/core/basesyntax/Counter.java +++ b/src/main/java/core/basesyntax/Counter.java @@ -12,7 +12,7 @@ public Counter(int value) { this.value = value; } - public void decreaseValue() { + public synchronized void decreaseValue() { logger.info(String.format(MESSAGE, "Before decrementing", Thread.currentThread().getName(), value)); value--; From b9504306512093e5a55d1c2c43c694c350698d42 Mon Sep 17 00:00:00 2001 From: Serhii Holenkov Date: Thu, 19 Jun 2025 07:23:13 +0300 Subject: [PATCH 2/2] Added logs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 38438a65..3b7bd1b9 100644 --- a/README.md +++ b/README.md @@ -58,5 +58,5 @@ Fix the solution to remove the race condition between the threads. Each thread should take the value that was decremented by the previous thread, and the logs should be consistent. Let's allow only one thread to execute the meaningful part of code at a time. -Note that you should push the file with logs to your PR, so please, do not add it to `.gitignore`. +Note that you should push the file with logs to your PR, so please, do not add it o `.gitignore`. You may probably need to use the absolute path to the log file in `log4j2.xml`.