Rename classes

This commit is contained in:
mthomas 2020-04-14 06:44:36 -05:00
parent 6534bddb6c
commit 4556829955
2 changed files with 11 additions and 11 deletions

View File

@ -3,32 +3,32 @@ package com.baeldung.atomicstampedreference;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicStampedReference;
public class SafeAccount {
public class StampedAccount {
private AtomicInteger stamp = new AtomicInteger(0);
private AtomicStampedReference<Integer> balance = new AtomicStampedReference<>(0, 0);
private AtomicStampedReference<Integer> account = new AtomicStampedReference<>(0, 0);
public int getBalance() {
return this.balance.get(new int[1]);
return this.account.get(new int[1]);
}
public int getStamp() {
int[] stamps = new int[1];
this.balance.get(stamps);
this.account.get(stamps);
return stamps[0];
}
public boolean deposit(int funds) {
int[] stamps = new int[1];
int current = this.balance.get(stamps);
int current = this.account.get(stamps);
int newStamp = this.stamp.incrementAndGet();
return this.balance.compareAndSet(current, current + funds, stamps[0], newStamp);
return this.account.compareAndSet(current, current + funds, stamps[0], newStamp);
}
public boolean withdrawal(int funds) {
int[] stamps = new int[1];
int current = this.balance.get(stamps);
int current = this.account.get(stamps);
int newStamp = this.stamp.incrementAndGet();
return this.balance.compareAndSet(current, current - funds, stamps[0], newStamp);
return this.account.compareAndSet(current, current - funds, stamps[0], newStamp);
}
}

View File

@ -3,11 +3,11 @@ package com.baeldung.atomicstampedreference;
import org.junit.Assert;
import org.junit.Test;
public class ThreadSafeAccountUnitTest {
public class ThreadStampedAccountUnitTest {
@Test
public void givenMultiThread_whenSafeAccount_thenSetBalance() throws InterruptedException {
SafeAccount account = new SafeAccount();
public void givenMultiThread_whenStampedAccount_thenSetBalance() throws InterruptedException {
StampedAccount account = new StampedAccount();
Thread t = new Thread(() -> {
while (!account.withdrawal(100))
Thread.yield();