_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

Java 21 Virtual Threads

28. 05. 2020 1 min read intermediate

Virtual threads v Java 21 umožňují miliony concurrent threads bez overhead platformních threadů.

Virtual threads

// Vytvoření virtual thread Thread.startVirtualThread(() -> { var result = fetchFromDB(); process(result); }); // ExecutorService s virtual threads try (var executor = Executors.newVirtualThreadPerTaskExecutor()) { List> futures = urls.stream() .map(url -> executor.submit(() -> fetch(url))) .toList(); for (var future : futures) { System.out.println(future.get()); } }

Spring Boot integrace

application.properties

spring.threads.virtual.enabled=true

Všechny request handlery běží na virtual threads!

When to Use

  • I/O-bound operace (HTTP, DB, file)
  • Vysoký počet concurrent requestů
  • NE pro CPU-bound operace
  • NE pro synchronized bloky (pinning)

Key Takeaway

Virtual threads = miliony concurrent threads. spring.threads.virtual.enabled=true a hotovo. Pozor na synchronized.

javavirtual threadsconcurrency
Share:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.