initial commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 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:
|
||||
```bash
|
||||
mvn clean compile
|
||||
```
|
||||
|
||||
To execute any of the workshop main classes (for example, the Lock Workshop solution):
|
||||
```bash
|
||||
mvn exec:java -Dexec.mainClass="workshop.solutions.LockWorkshopSolution"
|
||||
```
|
||||
Reference in New Issue
Block a user