Hacker News with Generative AI: Concurrency

Swift 6.2: A first look at how it's changing Concurrency (avanderlee.com)
Swift 6.2 is the upcoming release of Apple’s native language. It’s currently in active development, and as you know from my weekly Swift Evolution updates, many proposals are currently being processed.
JEP 506: Scoped Values final for Java 25 (openjdk.org)
Introduce scoped values, which enable a method to share immutable data both with its callees within a thread, and with child threads. Scoped values are easier to reason about than thread-local variables. They also have lower space and time costs, especially when used together with virtual threads (JEP 444) and structured concurrency (JEP 505).
Concurrency in Haskell: Fast, Simple, Correct (bitbashing.io)
After nearly a decade of building embedded systems in C, C++, and Rust, I’ve somehow ended up writing Haskell for a living.
Problems with Go channels (2016) (jtolio.com)
I’ve been using Google’s Go programming language on and off since mid-to-late 2010, and I’ve had legitimate product code written in Go for Space Monkey since January 2012 (before Go 1.0!). My initial experience with Go was back when I was researching Hoare’s Communicating Sequential Processes model of concurrency and the π-calculus under Matt Might’s UCombinator research group as part of my (now redirected) PhD work to better enable multicore development.
Erlang's not about lightweight processes and message passing (2023) (stevana.github.io)
I used to think that the big idea of Erlang is its lightweight processes and message passing. Over the last couple of years I’ve realised that there’s a bigger insight to be had, and in this post I’d like to share it with you.
In React {Transitions} = F(state) (jordaneldredge.com)
TL;DR: Thinking about the React component tree as modeling a state machine can help clarify the implications of asynchronous updates and React’s concurrent features.
Ask HN: Easiest and hardest concurrency models to use correctly? (ycombinator.com)
There's a lot of options for concurrency. In Python alone, you can use threads with shared memory, threads with queues, processes with queues, concurrent.futures, asyncio, trio, or AnyIO. Java now has a preview of structured concurrency and virtual threads in addition to regular threads. There's also the CSP model of Go, as well as the actor model and supervision trees of Erlang/OTP. Software transactional memory seems to be popular in the purely functional world but rare outside of it.
How different languages and frameworks handle structured concurrency (github.com/jamesward)
A language for building concurrent software with confidence (github.com/inko-lang)
Inko is a language for building concurrent software with confidence.
Ruby, Ractors, and lock-free data structures (iliabylich.github.io)
This story is about concurrent data structures in the context of Ruby. The goal here is to demonstrate how true parallelism can be achieved with global mutable state (which at the time of writing, is not supported by built-in Ruby primitives).
Ratomic: Provides Mutable data structures for use with Ruby's Ractors (github.com/mperham)
Notes on structured concurrency, or: Go statement considered harmful (2018) (vorpus.org)
Every concurrency API needs a way to run code concurrently.
Lock Contention (maksimkita.com)
Recently, I revisited Resolving a year-long ClickHouse lock contention post and spoke about it at C++ Russia 2025 conference.
What's the Deal with (Ruby) Ractors? (byroot.github.io)
When Ractors were announced 4 or 5 years ago, many people expected we’d quickly see a Ractor-based web server, some sort of Puma but with Ractors instead of threads. Yet this still hasn’t happened, except for a few toy projects and experiments.
Concurrency bugs in Lucene: How to fix optimistic concurrency failures (elastic.co)
Debugging concurrency bugs is no picnic, but we're going to get into it. Enter Fray, a deterministic concurrency testing framework from CMU’s PASTA Lab, that turns flaky failures into reliably reproducible ones. Thanks to Fray’s clever shadow lock design and precise thread control, we tracked down a tricky Lucene bug and finally squashed it. This post explores how open-source heroes and tools are making concurrency debugging less painful—and the software world a whole lot better.
Exposing concurrency bugs with a custom scheduler (lwn.net)
Jake Hillion gave a presentation at FOSDEM about using sched_ext, the BPF scheduling framework that was introduced in kernel version 6.12, to help find elusive concurrency problems.
Ruby “Thread Contention” Is Simply GVL Queuing (island94.org)
For the longest time, I’ve misunderstood the phrase “thread contention”. It’s a little embarrassing that given I’m the author of GoodJob (👍) and a maintainer of Concurrent Ruby and have been doing Ruby and Rails stuff for more than a decade. But true.
Par: Process language with an interactive playground for exploring concurrency (github.com/faiface)
Par (⅋) is an experimental concurrent programming language. It's an attempt to bring the expressive power of linear logic into practice.
The Mythical IO-Bound Rails App (byroot.github.io)
When the topic of Rails performance comes up, it is commonplace to hear that the database is the bottleneck, so Rails applications are IO-bound anyway, hence Ruby performance doesn’t matter that much, and all you need is a healthy dose of concurrency to make your service scale.
The Mythical IO-Bound Rails App (byroot.github.io)
When the topic of Rails performance comes up, it is commonplace to hear that the database is the bottleneck, so Rails applications are IO-bound anyway, hence Ruby performance doesn’t matter that much, and all you need is a healthy dose of concurrency to make your service scale.
Ada for the C++ or Java Developer – Concurrency (adacore.com)
Java and Ada both provide support for concurrency in the language. The C++ language has added a concurrency facility in its most recent revision, C++11, but we are assuming that most C++ programmers are not (yet) familiar with these new features. We thus provide the following mock API for C++ which is similar to the Java Thread class:
Clojure core.async.flow (github.com/clojure)
The fundamental objective of core.async.flow is to enable a strict separation of your application logic from its topology, execution, communication, lifecycle, monitoring and error handling, all of which are provided by and centralized in, c.a.flow, yielding more consistent, robust, testable, observable and operable systems.
Show HN: Pyper – Concurrent Python Made Simple (github.com/pyper-dev)
Pyper is a flexible framework for concurrent and parallel data-processing, based on functional programming patterns. Used for 🔀 ETL Systems, ⚙️ Data Microservices, and 🌐 Data Collection
Python Concurrency: Threads, Processes, and Asyncio Explained (newvick.com)
I recently needed to learn Python concurrency. I always thought I’d get to that topic someday. That someday arrived.
How concurrency works: A visual guide (wyounas.github.io)
Concurrent programming is hard.
Database Concurrency Patterns for Developers (taki-mekhalfa.github.io)
I have been developing applications interacting with databases for many years now and I have always taken concurrency for granted.
In-Depth Ruby Concurrency: Navigating the Ruby Concurrency Landscape (jpcamara.com)
I was honored to present a talk on Ruby concurrency at RubyConf 2024. It represents a high-level distillation of much of my writing and research over the past year. The conference itself was great, and presenting was such a fun experience.
What every systems programmer should know about concurrency (2020) [pdf] (bitbashing.io)
Show HN: Lfi – a lazy functional sync, async, and concurrent iteration library (lfi.dev)
lfi is a lazy functional sync, async, and concurrent iteration library
What every systems programmer should know about concurrency (2020) [pdf] (bitbashing.io)