<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concurrency on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/tags/concurrency/</link><description>Recent content in Concurrency on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 02 Jun 2026 07:00:00 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/tags/concurrency/index.xml" rel="self" type="application/rss+xml"/><item><title>Virtual Threads Meet AI: Java Concurrency in the Age of Intelligent Systems</title><link>https://javapro-en.svenruppert.com/virtual-threads-meet-ai-java-concurrency-in-the-age-of-intelligent-systems/</link><pubDate>Tue, 02 Jun 2026 07:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/virtual-threads-meet-ai-java-concurrency-in-the-age-of-intelligent-systems/</guid><description>&lt;p&gt;AI workloads change how Java applications scale and behave. This article explains how Java 26 and virtual threads simplify concurrency in AI-heavy systems, replacing complex reactive setups with clearer and more efficient designs. It shows when virtual threads outperform traditional async models and how concurrency choices impact system architecture.&lt;/p&gt;
&lt;h2 id="introduction-java-ai-and-the-new-concurrency"&gt;Introduction: Java, AI, and the New Concurrency&lt;/h2&gt;
&lt;p&gt;The rapid growth of AI-driven systems is reshaping how we design and scale Java APIs. RAG systems, LLM inference, and recommendation pipelines bring thousands of simultaneous requests with heavy network I/O, vector databases, and external services.&lt;/p&gt;</description></item><item><title>More Action, More Overview</title><link>https://javapro-en.svenruppert.com/more-action-more-overview/</link><pubDate>Tue, 22 Jul 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/more-action-more-overview/</guid><description>Java applications have to contend with various concurrency problems. There is a solution here with new constructs.</description></item><item><title>Structured concurrency</title><link>https://javapro-en.svenruppert.com/structured-concurrency/</link><pubDate>Fri, 18 Apr 2025 07:00:03 +0000</pubDate><guid>https://javapro-en.svenruppert.com/structured-concurrency/</guid><description>&lt;p&gt;Structured Concurrency was the second delivery that came out of Project Loom. It was first introduced in Java 19 as a preview API. It aimed to simplify multithreaded programming by treating multiple tasks running in different threads as a single unit of work, thereby streamlining makes the code more readable, streamlining error handling, improving reliability, and enhancing observerability.&lt;/p&gt;
&lt;p&gt;In this article, we will look at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Look at what structured concurrency is.&lt;/li&gt;
&lt;li&gt;Look at an example using structured concurrency.&lt;/li&gt;
&lt;li&gt;Dive into the underlying API with StructuredTaskScope.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-structured-concurrency"&gt;&lt;strong&gt;What is Structured Concurrency&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Structured concurrency allows developers to reason about concurrent code by defining precise points where execution splits into multiple tasks and where those tasks subsequently merge. It brings the same level of organization to concurrency that &lt;code&gt;for&lt;/code&gt; loops and &lt;code&gt;if&lt;/code&gt; branches bring to structured programming. It achieves this by restricting the lifespan of concurrent operations to specific scopes. Similar to how variables within a &lt;code&gt;if&lt;/code&gt; statement in structured programming are bound to that block, concurrent operations within a structured scope are terminated upon exiting that scope. This ensures that threads do not linger, preventing memory leaks and wasted CPU resources.&lt;/p&gt;</description></item></channel></rss>