Difference between revisions of "Atomic Stack Assignment"
Jump to navigation
Jump to search
Line 11: | Line 11: | ||
{{CodeToImplement|DefaultNode|value<br/>nextNode|stack.node.exercise|main}} | {{CodeToImplement|DefaultNode|value<br/>nextNode|stack.node.exercise|main}} | ||
− | ==constructor== | + | ====constructor and instance variables==== |
− | ==value== | + | ====value==== |
− | ==nextNode== | + | ====nextNode==== |
==Stack== | ==Stack== | ||
Line 25: | Line 25: | ||
===NotThreadSafeStack=== | ===NotThreadSafeStack=== | ||
[https://www.javadoc.io/static/com.google.code.findbugs/jsr305/3.0.1/javax/annotation/concurrent/NotThreadSafe.html @NotThreadSafe] | [https://www.javadoc.io/static/com.google.code.findbugs/jsr305/3.0.1/javax/annotation/concurrent/NotThreadSafe.html @NotThreadSafe] | ||
+ | ====constructor and instance variables==== | ||
+ | ====nodeConstructor==== | ||
+ | ====push==== | ||
+ | ====peek==== | ||
+ | ====pop==== | ||
===ConcurrentStack=== | ===ConcurrentStack=== | ||
[https://www.javadoc.io/static/com.google.code.findbugs/jsr305/3.0.1/javax/annotation/concurrent/ThreadSafe.html @ThreadSafe] | [https://www.javadoc.io/static/com.google.code.findbugs/jsr305/3.0.1/javax/annotation/concurrent/ThreadSafe.html @ThreadSafe] | ||
+ | ====constructor and instance variables==== | ||
+ | ====nodeConstructor==== | ||
+ | ====push==== | ||
+ | ====peek==== | ||
+ | ====pop==== | ||
===AtomicStack=== | ===AtomicStack=== | ||
[https://www.javadoc.io/static/com.google.code.findbugs/jsr305/3.0.1/javax/annotation/concurrent/ThreadSafe.html @ThreadSafe] | [https://www.javadoc.io/static/com.google.code.findbugs/jsr305/3.0.1/javax/annotation/concurrent/ThreadSafe.html @ThreadSafe] | ||
+ | ====constructor and instance variables==== | ||
+ | ====nodeConstructor==== | ||
+ | ====push==== | ||
+ | ====peek==== | ||
+ | ====pop==== | ||
=Testing= | =Testing= |
Revision as of 03:13, 6 November 2022
Contents
Code To Implement
Node
public interface Node<E> { E value(); Optional<Node<E>> nextNode(); }
DefaultNode
@Immutable class DefaultNode.
class: | DefaultNode.java | |
methods: | value nextNode |
|
package: | stack.node.exercise | |
source folder: | main/src/main/java |
constructor and instance variables
value
nextNode
Stack
public interface Stack<E> { void push(E value); Optional<E> peek(); Optional<E> pop(); }
NotThreadSafeStack
constructor and instance variables
nodeConstructor
push
peek
pop
ConcurrentStack
constructor and instance variables
nodeConstructor
push
peek
pop
AtomicStack
constructor and instance variables
nodeConstructor
push
peek
pop
Testing
class: | StackTestSuite.java | |
package: | stack.exercise | |
source folder: | testing/src/test/java |
DefaultNode
class: | _DefaultNodeTestSuite.java | |
package: | stack.node.exercise | |
source folder: | testing/src/test/java |
NotThreadSafeStack
class: | _NotThreadSafeStackTestSuite.java | |
package: | stack.notthreadsafe.exercise | |
source folder: | testing/src/test/java |
ConcurrentStack
class: | __ConcurrentStackTestSuite.java | |
package: | stack.concurrent.exercise | |
source folder: | testing/src/test/java |
sequential
class: | _ConcurrentStackSequentialTestSuite.java | |
package: | stack.concurrent.exercise | |
source folder: | testing/src/test/java |
parallel
class: | _ConcurrentStackParallelTestSuite.java | |
package: | stack.concurrent.exercise | |
source folder: | testing/src/test/java |
AtomicStack
class: | __AtomicStackTestSuite.java | |
package: | stack.atomic.exercise | |
source folder: | testing/src/test/java |
sequential
class: | _AtomicStackSequentialTestSuite.java | |
package: | stack.atomic.exercise | |
source folder: | testing/src/test/java |
parallel
class: | _AtomicStackParallelTestSuite.java | |
package: | stack.atomic.exercise | |
source folder: | testing/src/test/java |