Skip to content

davengn/concurrency-java-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concurrency Java Lab

This project is a hands-on Java 21 concurrency lab based on a fictional Netflix-style workflow:

Regions -> Orders -> Products -> gRPC calls

The repository intentionally contains requirements only. Implement the exercises yourself in src/main/java/com/netflix/lab.

Project Layout

.
├── pom.xml
├── README.md
├── labs/
│   ├── 00-project-setup.md
│   ├── 01-foundations-cpu-vs-io.md
│   ├── 02-parallel-stream-pitfalls.md
│   ├── 03-completablefuture-oom-nightmare.md
│   ├── 04-self-throttling-semaphore-ratelimiter.md
│   ├── 05-virtual-thread-traps-pinning-oom.md
│   └── 06-final-solution.md
└── src/main/java/com/netflix/lab/

Suggested Class Names

Create one class per exercise:

Lab Suggested class
1 Lab01Foundations
2 Lab02ParallelStreamPitfalls
3 Lab03CompletableFutureOomNightmare
4 Lab04SelfThrottling
5 Lab05VirtualThreadTraps
6 Lab06FinalSolution

Build

mvn compile

Important JVM Arguments

Use these when running the specific exercises that need them:

-Djdk.tracePinnedThreads=short

Use this for OOM exercises:

-Xmx128m

Lab Requirements

Start with Project Setup, then complete each lab in order. Every lab file contains the goal, constraints, implementation requirements, and expected observations.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages