Files
WS-08-Advanced-Multithreading/README.md
T
2026-05-31 17:07:01 +03:30

1.4 KiB

Advanced Multithreading Workshop

This project contains the workshop materials for the Advanced Programming multithreading session. It has been migrated from Gradle to Maven and structured for clear delivery.

Project Structure

  • src/main/java/workshop/exercises/: Unsolved skeleton files with clear TODO markers. These are the templates to distribute to students and use during live coding.
  • src/main/java/workshop/solutions/: Fully implemented reference solutions for grading and internal testing.

Exercises Covered

  1. LockWorkshop: Resolving race conditions on a shared mutable counter using explicit ReentrantLock coordination.
  2. SynchronizedWorkshop: Resolving race conditions on a shared mutable counter using intrinsic Java monitors (synchronized block).
  3. DeadlockPreventionWorkshop: Resolving a classic thread circular wait condition by enforcing global lock ordering based on unique Resource IDs.
  4. TaylorSeries: Implementing high-precision math with BigDecimal and calculating the Taylor series for \sin(x) using a thread pool (ExecutorService).

Requirements

  • Java 17 or higher
  • Apache Maven 3.6+

How to Build and Run

To compile the project:

mvn clean compile

To execute any of the workshop main classes (for example, the Lock Workshop solution):

mvn exec:java -Dexec.mainClass="workshop.solutions.LockWorkshopSolution"