InfoQ Homepage Concurrency Content on InfoQ
-
Introducing Helidon Níma Using Virtual Threads to Achieve Simplicity and High Performance
Under the umbrella of Project Helidon, Oracle introduced the first microservices framework based on virtual threads (JEP 425) called Helidon Níma. It is built from the ground up to achieve an easy-to-use programming model with outstanding performance. The technology preview is now available with the Helidon 4.0.0-ALPHA1 release for those who are interested in evaluating the latest Java technology.
-
JEP 429: Extent-Local Variables to Promote Immutability in Java
JEP 429, Extent-Local Variables (Incubator), was promoted from its JEP Draft 8263012 to Candidate status. This incubating JEP, under the umbrella of Project Loom, proposes enabling the sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads.
-
JDK 19 and JDK 20: What We Know So Far
JDK 19, the second non-LTS release since JDK 17, has reached its initial release candidate phase with a final set of seven (7) new features, in the form of JEPs, that can be separated into three categories: Core Java Library, Java Specification and Hotspot Compiler. We examine JDK 19 and predict what features may be targeted for JDK 20.
-
JEP 428: Structured Concurrency to Simplify Java Multithreaded Programming
JEP 428, Structured Concurrency (Incubator), has been promoted from Proposed to Target to Targeted status for JDK 19. Under the umbrella of Project Loom, this JEP proposes simplifying multithreaded programming by introducing a library to treat multiple tasks running on different threads as an atomic operation. It will streamline error handling, improve reliability, and enhance observability.
-
JEP 425: Java Virtual Threads to Deliver Improved Throughput
JEP 425, Virtual Threads (Preview), has been promoted from Proposed to Target to Targeted status for JDK 19. This JEP, under the umbrella of Project Loom, introduces virtual threads. These lightweight threads aim to dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications to the Java platform. This is a preview feature.
-
Infer New Deadlock Detector for Android Aims to Be Efficient for Large Codebases
In a joint research, London University College and Facebook researchers created a new deadlock detector for Android Java code now available as part of open-source Infer static analysis tool. The new analyzer is able to process large codebases efficiently thanks to its incremental approach specifically designed for integration in a CI pipeline.
-
OCaml 5 Will Include Multicore Support
The OCaml team has announced a detailed roadmap to add multicore support to the language runtime and will focus on merging the multicore and standard runtimes in the next minor releases leading to OCaml 5.
-
ZippyDB: the Architecture of Facebook’s Strongly Consistent Key-Value Store
Facebook Engineering recently published how it built its general-purpose key-value store, known as ZippyDB. ZippyDB is Facebook's biggest key-value store, which has been in production for more than six years. It offers flexibility to applications in terms of tunable durability, consistency, availability, and latency guarantees.
-
.NET 6: Threading Improvements
While numerous libraries exist to abstract away the complexities of asynchronous and concurrent programming, developers still need to drop down to lower thread-handling logic from time to time. Continuing our API changes for .NET 6 series, we look at some new tricks for multi-threading.
-
Swift 5.5 Brings Async/Await and Actor Support
At WWDC21, Apple has introduced Swift 5.5, available in beta. Among its new features, one of the most anticipated is better concurrency support using aysnc/await and actors.
-
Deno 1.10 Released with Shared Wasm Memory and Web Storage Support
The Deno team recently released Deno 1.10 with shared WASM memory support, an implementation of Web Storage API, remote import maps, improvements to the built-in test runner, and more.
-
GitHub Scales Its Rate Limiter Using Redis
Yesterday GitHub engineer Robert Mosolgo posted a detailed account of how GitHub scaled the GitHub API with a sharded, replicated rate limiter in Redis. GitHub migrated from an older Memcached-based rate limiter to a Redis-based one. According to Mosolgo, the new implementation has improved reliability, fixed issues for clients, and reduced GitHub's support load.
-
Rust Asynchronous Runtime Tokio Reaches 1.0
Tokio aims to provide building blocks to write reliable and fast asynchronous programs in Rust. Recently announced Tokio 1.0 supports TCP, UDP, timers, a multi-threaded, work-stealing scheduler, and more.
-
Swift Aims to Become a Data Race-Free Concurrent Language
The Swift team has published its roadmap to improve concurrency support in Swift. In a first phase, Swift will gain the async syntax and actors, while in a second phase focus will be on eliminating data races and deadlocks.
-
Swift Atomics Enables First-Class Atomic Operations in Swift
Swift Atomics aims to allow system programmers to write synchronization constructs directly in Swift.