<?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 Sven Ruppert</title><link>https://sven-ruppert.info/categories/concurrency/</link><description>Recent content in Concurrency on Sven Ruppert</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>sven.ruppert@gmail.com (Sven Ruppert)</managingEditor><webMaster>sven.ruppert@gmail.com (Sven Ruppert)</webMaster><copyright>© 2026 Sven Ruppert</copyright><lastBuildDate>Wed, 02 Apr 2025 20:58:21 +0000</lastBuildDate><atom:link href="https://sven-ruppert.info/categories/concurrency/index.xml" rel="self" type="application/rss+xml"/><item><title>Rethinking Java Streams: Gatherer for more control and parallelism</title><link>https://sven-ruppert.info/posts/rethinking-java-streams-gatherer-for-more-control-and-parallelism/</link><pubDate>Wed, 02 Apr 2025 20:58:21 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/rethinking-java-streams-gatherer-for-more-control-and-parallelism/</guid><description>&lt;p&gt;Since version 8, Java has introduced an elegant, functional approach to processing data sets with the Streams API. The terminal operation collect(&amp;hellip;) represents the bridge from the stream to a targeted aggregation - in the form of lists, maps, strings or more complex data structures. Until Java 20 the processing was done Collector-Instances were regulated, which internally consisted of a supplier, an accumulator, a combiner and optionally a finisher. This model works well for simple accumulations but has noticeable limitations, particularly for complex, stateful, or conditional aggregations.&lt;/p&gt;</description></item><item><title>The History of Parallel Processing in Java: From Threads to Virtual Threads</title><link>https://sven-ruppert.info/posts/the-history-of-parallel-processing-in-java-from-threads-to-virtual-threads/</link><pubDate>Fri, 01 Nov 2024 22:02:37 +0000</pubDate><author>sven.ruppert@gmail.com (Sven Ruppert)</author><guid>https://sven-ruppert.info/posts/the-history-of-parallel-processing-in-java-from-threads-to-virtual-threads/</guid><description>&lt;p&gt;Since the early days of computer science, parallel processing has represented one of the greatest challenges and opportunities. Since its inception in 1995, Java has undergone a significant journey in the world of parallel programming to provide developers with ever-better tools. This story is a fascinating journey through threads, the executor framework, fork/join, parallel streams, CompletableFuture and the latest developments in Project Loom. In this blog post, we take a detailed look at the evolution of parallel processing in Java and the innovations that came with it.&lt;/p&gt;</description></item></channel></rss>