InfoQ Homepage Concurrency Content on InfoQ
-
.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.
-
Rewriting Dropbox Sync with Confidence Thanks to a Robust Test Strategy
Over the last few years, Dropbox engineers have rewritten their client-side sync engine from scratch. This would not have been possible had they not defined a clear testing strategy to allow them to build and ship the new engine through a quick release cycle, writes Dropbox engineer Isaac Goldberg.
-
Modern Android App Architecture with JetPack and Dropbox Store
Dropbox recently took ownership of the open-source Store library to revamp it and bring it closer to the current Android developer ecosystem. Originally developed at the New York Times, Store has been rewritten in Kotlin on the foundations provided by Coroutines and Flow. Along with Google´s JetPack collection of libraries, Dropbox Store provides a solution to create modern Android apps.
-
Improving Webapp Performance with Multi-Threading: a Study of Web Workers' Communication Overhead
Surma, Web Advocate at Google, recently published a study on the performance of postMessage, the method used by web workers to communicate. Surma concludes that while postMessage comes with some overhead, provided the payload is below a given budget, moving non-UI tasks off the main thread may result in increased overall user-perceived performance.
-
Interfacing Elixir with Rust to Improve Performance: Discord's Story
When the Discord team hit a hard-limit on BEAM's performance dealing with large data structures, they resorted to interfacing Elixir with Rust to make their system able to scale up to 11 million concurrent users.
-
WorkerDOM Adds DOM Concurrency for JavaScript Programming
The big news at this year's JSConf was the introduction of WorkerDOM, a JavaScript library to make the DOM available to Web Workers, allowing developers to leverage multi-core processor architectures to improve web performance.
-
Facebook Open-Sources RacerD - Java Race Condition Detector
Facebook’s open-source static analysis tool, Infer, now ships with support for detecting race conditions in Java code via RacerD.
-
QCon New York 2017: The Ordering of Events in Systems
Kavya Joshi, software engineer at Samsara, explored in detail the happens-before principal at QCon New York 2017. She explained how the distributed key-value store, Riak, uses vector clocks to establish causality across nodes. She also looked at concurrency primitives in Go, explaining how they happens-before constraints naturally.
-
Concurrent and Distributed Programming in the Future
The world is concurrent with everything around us asynchronous and event oriented. Concurrency and the cloud are things every developer will have to deal with in the future, Joe Duffy claimed in his keynote at the recent QCon London conference. At the heart of this is communication, which is essential both for concurrent and distributed systems.