Atomic Stack Assignment
Jump to navigation
Jump to search
Contents
Motivation
We will build a thread-safe implementation of a Stack using atomics.
Background
Atomics
Code To Implement
AtomicStack
While ConcurrentStack could simply rely on synchronized to provide thread-safety, AtomicStack must change its data structure. To be @ThreadSafe, AtomicStack must correctly use AtomicReference<V>.
Do NOT hold any intrinsic locks (via synchronized). It would be wasteful (and missing the point) to pay the lock overhead when the AtomicReference will get the job done.
class: | AtomicStack.java | |
methods: | constructor push peek pop |
|
package: | stack.atomic.exercise | |
source folder: | student/src/main/java |
constructor and instance variables
Be sure to initialize whatever state you need to implement a mutable thread-safe Stack using atomics.
push
peek
pop
Testing
class: | __AtomicStackTestSuite.java | |
package: | stack.atomic.exercise | |
source folder: | testing/src/test/java |
Pledge, Acknowledgments, Citations
file: | atomic-stack-pledge-acknowledgments-citations.txt |
More info about the Honor Pledge