Difference between revisions of "Concurrent Stack Assignment"

From CSE231 Wiki
Jump to navigation Jump to search
Line 3: Line 3:
  
 
=Motivation=
 
=Motivation=
We will build a thread-safe implementation of a Stack using synchronized methods.
+
We will modify our previous Stack solution, this time producing a thread-safe implementation of a Stack using synchronized methods.
  
 
=Background=
 
=Background=

Revision as of 19:42, 7 April 2023

Previous Exercise

Recall that you have built a NotThreadSafeStack.

Motivation

We will modify our previous Stack solution, this time producing a thread-safe implementation of a Stack using synchronized methods.

Background

Implicit Locks

synchronized methods

Code To Implement

ConcurrentStack

To be @ThreadSafe, one must hold intrinsic lock (via synchronized) on the ConcurrentStack instance for each of the methods which read and/or write to mutable data.

class: ConcurrentStack.java Java.png
methods: constructor
push
peek
pop
package: stack.concurrent.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.

push

peek

pop

Testing

class: __ConcurrentStackTestSuite.java Junit.png
package: stack.concurrent.exercise
source folder: testing/src/test/java

Pledge, Acknowledgments, Citations

file: concurrent-stack-pledge-acknowledgments-citations.txt

More info about the Honor Pledge