This repository contains a Spring demo application using "Virtual Threads", a feature described in JEP 444 and released in Java 21.
The application has two controllers:
ControllerEvolution1_Sequential
: sequential code on platform threads or virtual threadsControllerEvolution2_CompletableFuture
: asynchronous code using CompletableFuture
Start the application in dev mode using:
mvn spring-boot:run
Then query the endpoints using:
curl localhost:8080/stage1-seq/product/1
curl localhost:8080/stage2-cf/product/1
To switch to virtual threads, uncomment the two bean definitions in SpringVirtualThreadTestApplication.java
, then access this endpoint again:
curl localhost:8080/stage1-seq/product/1
Within IntelliJ, you can also open the endpoints-test.http
file to run the HTTP requests.
IntelliJ IDEA supports Java 21 as of version 2023.2.2. As long as this version is not yet released, you can install the release candidate via the JetBrains Toolbox App by going into the IntelliJ IDEA settings and activating the "Early Access Program".
You can download Java 21 from here: https://jdk.java.net/21/
To install multiple Java versions on Linux or macOS, I recommend using SDKMAN!
To install multiple Java versions on Windows, have a look at this tutorial: How to Change Java Versions in Windows
You might also find these GitHub repositories interesting:
Virtual Threads:
- https://github.com/SvenWoltmann/virtual-threads
- https://github.com/SvenWoltmann/virtual-threads-quarkus
Structured Concurrency:
Scoped Values:
Pattern Matching for Switch:
Stay up-to-date with the latest Java features with this PDF Cheat Sheet!
- Avoid lengthy research with this concise overview of all Java versions up to Java 23.
- Discover the innovative features of each new Java version, summarized on a single page.
- Impress your team with your up-to-date knowledge of the latest Java version.
👉 Download the Java Versions PDF
(Hier geht's zur deutschen Version → Java-Versionen PDF)
With this 1-page PDF cheat sheet, you'll always have the 7 most important complexity classes at a glance.
- Always choose the most efficient data structures and thus increase the performance of your applications.
- Be prepared for technical interviews and confidently present your algorithm knowledge.
- Become a sought-after problem solver and be known for systematically tackling complex problems.
👉 Download the Big O Cheat Sheet
(Hier geht's zur deutschen Version → O-Notation Cheat Sheet)
👉 Want to level up your Java skills? Sign up for the HappyCoders newsletter and get regular tips on programming, algorithms, and data structures!
(Hier geht's zur deutschen Version → HappyCoders-Newsletter deutsch)
🇩🇪 An alle Java-Programmierer, die durch fundierte Kenntnisse über Datenstrukturen besseren Code schreiben wollen
Trage dich jetzt auf die Warteliste von „Mastering Data Structures in Java“ ein, und erhalte das beste Angebot!