diff --git a/os/code/os/src/main/java/com/scaler/addersubtractor/Adder.java b/os/code/os/src/main/java/com/scaler/addersubtractor/Adder.java index d42c8f2..3d674c8 100644 --- a/os/code/os/src/main/java/com/scaler/addersubtractor/Adder.java +++ b/os/code/os/src/main/java/com/scaler/addersubtractor/Adder.java @@ -10,7 +10,17 @@ public class Adder implements Runnable { public void run() { for (int i = 1; i <= 100; ++i) { - count.getValue().getAndAdd(i); + + int value = count.getValue(); + try { + Thread.sleep(50); + } catch (Exception e) { + System.out.println("Something wrong happened"); + } + + int nextValue = value + i; + count.setValue(nextValue); + try { Thread.sleep(10); } catch (Exception e) { diff --git a/os/code/os/src/main/java/com/scaler/addersubtractor/Count.java b/os/code/os/src/main/java/com/scaler/addersubtractor/Count.java index 348de30..37942dc 100644 --- a/os/code/os/src/main/java/com/scaler/addersubtractor/Count.java +++ b/os/code/os/src/main/java/com/scaler/addersubtractor/Count.java @@ -1,15 +1,13 @@ package com.scaler.addersubtractor; -import java.util.concurrent.atomic.AtomicInteger; - public class Count { - private AtomicInteger value = new AtomicInteger(0); + private volatile int value = 0; - public AtomicInteger getValue() { + public int getValue() { return value; } - public void setValue(AtomicInteger value) { + public void setValue(int value) { this.value = value; } } diff --git a/os/code/os/src/main/java/com/scaler/addersubtractor/Subtractor.java b/os/code/os/src/main/java/com/scaler/addersubtractor/Subtractor.java index ae80473..c346cd8 100644 --- a/os/code/os/src/main/java/com/scaler/addersubtractor/Subtractor.java +++ b/os/code/os/src/main/java/com/scaler/addersubtractor/Subtractor.java @@ -1,7 +1,5 @@ package com.scaler.addersubtractor; -import java.util.concurrent.locks.Lock; - import lombok.AllArgsConstructor; @AllArgsConstructor @@ -12,7 +10,17 @@ public class Subtractor implements Runnable { public void run() { for (int i = 1; i <= 100; ++i) { - count.getValue().getAndAdd(-i); + + int value = count.getValue(); + try { + Thread.sleep(50); + } catch (Exception e) { + System.out.println("Something wrong happened"); + } + + int nextValue = value - i; + count.setValue(nextValue); + try { Thread.sleep(10); } catch (Exception e) {