In this task, you need to implement a modified version of the classic Treiber
concurrent stack algorithm, which optimizes push(..)
-s and pop()
-s
under high contention via the elimination technique.
The task consists of two parts. You first need to implement the classic
Treiber stack algorithm in src/TreiberStack.kt
,
adding the elimination technique in src/TreiberStackWithElimination.kt
.
Write your first and last name in the header of the file after the @author
tag.
You may also be interested in this paper about the elimination technique.
To test your solution, please run:
./gradlew test
on Linux or MacOSgradlew test
on Windows