From 85950c58c4b7a649e42286d83800ac11b9d1cb65 Mon Sep 17 00:00:00 2001 From: Matin Date: Sun, 14 Jun 2026 05:06:32 +0430 Subject: [PATCH] Answer the question and write a bonus simple example about an atomic variable --- Answers.md | 0 src/main/java/dev/banking/model/bonus.java | 32 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 Answers.md create mode 100644 src/main/java/dev/banking/model/bonus.java diff --git a/Answers.md b/Answers.md new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/dev/banking/model/bonus.java b/src/main/java/dev/banking/model/bonus.java new file mode 100644 index 0000000..8063c75 --- /dev/null +++ b/src/main/java/dev/banking/model/bonus.java @@ -0,0 +1,32 @@ +package dev.banking.model; +import java.util.concurrent.atomic.AtomicInteger ; +public class bonus { + private static int normalVariable = 0 ; + private static final AtomicInteger atomicVariable = new AtomicInteger(0) ; + public static void main(String[] args) throws InterruptedException{ + int numberOfThrad = 10 ; + int incrementsPerThread = 10000 ; + Thread[] threads = new Thread[numberOfThrad] ; + Runnable task = () -> { + for (int i = 0 ; i < incrementsPerThread ; i ++ ) + { + normalVariable ++ ; + atomicVariable.incrementAndGet() ; + } + }; + for (int i = 0 ; i < numberOfThrad ; i ++) + { + threads[i] = new Thread(task) ; + threads[i].start(); + } + for (Thread thread : threads) + { + thread.join(); + } + System.out.println("Expected Value (مقدار مورد انتظار): " + (numberOfThrad * incrementsPerThread)); + System.out.println("Normal Integer Result (متغیر معمولی): " + normalVariable); + System.out.println("Atomic Integer Result (متغیر اتمیک): " + atomicVariable.get()); + + } + +}