Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Multi-threading Content on InfoQ

  • Structured Concurrency in JDK 21: A Leap Forward in Concurrent Programming

    JEP 453, Structured Concurrency (Preview), has been Integrated from the Targeted status for JDK 21. Formerly an incubating API, this initial preview incorporates enhancements in response to feedback from the previous two rounds of incubation: JEP 428, Structured Concurrency (Incubator), delivered in JDK 19; and JEP 437, Structured Concurrency (Second Incubator), delivered in JDK 20.

  • 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.

  • 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.

  • .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.

  • 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.

  • Netflix Zuul Gets a Makeover to a Asynchronous and Non-Blocking Architecture

    Rags Srinivas caught up with engineering manager at Netflix, Mikey Cohen, regarding their major re-architecture of their Zuul gateway for microservices. Cohen talks about the journey and walks through the motivation and challenges of this significant effort.

  • Gil Tene: Understanding Hardware Transactional Memory

    In his presentation "Understanding Hardware Transactional Memory" at QCon New York 2016, Gil Tene introduces hardware transactional memory (HTM). Whereas the concept of HTM is not new, it is now finally available in commodity hardware. The purpose of HTM is to be able to write to multiple addresses in memory in an atomical way so that there cannot be inconsistencies in cooperation other threads.

  • Lock-free Programming in C++ with Herb Sutter

    At CppCon 2014, Herb Sutter gave a talk about lock-free programming in C++ where he provided the fundamental concepts of lock-free programming, and presented three algorithms to show lock-free techniques. Here is a summary of the most relevant points in the talk.

  • How Immutable State Helped Facebook to Improve Its iOS App Architecture

    Facebook has been working in the last two years to evolve the architecture of its iOS app with the goal of improving performance, abstractions, and the underlying development model. Adam Ernst and Arl Grant, software engineers at Facebook, explained what issues they had to solve and how they did in a @Scale 2014 talk.

  • Facebook AsyncDisplayKit Touts Smooth Asynchronous UI for iOS Apps

    Facebook has open-sourced its AsyncDisplayKit, a framework originally built for Facebook's Paper app that promises to make it easier to keep apps smooth and responsive even on older devices.

  • .NET Goes Immutable

    One of the most common misunderstandings in .NET development is the idea that variables of type IEnumerable or ReadOnlyCollection are thread-safe. In order to offer truly thread-safe collections for scenarios where you would be tempted to use IEnumerable or ReadOnlyCollection, Microsoft’s Base Class Library (BCL) team is offering a preview of a new set of immutable collections.

  • .NET Deadlock Detection with PostSharp

    SharpCrafters, makers of the AOP framework PostSharp, have developed a drop-in deadlock detection toolkit. This toolkit works with most standard locking primitives such as Mutex, Monitor, and ReaderWriterLock with only a single line of code added to the project.

  • Vector Fabrics Introduces Pareon for Multicore Software Optimization

    The Dutch company Vector Fabrics recently introduced its tool called Pareon. According to the company’s press release, the tool allows to optimize applications for multicore systems.

  • Multithreading and WPF 4.5

    WPF 4.5 has improved its support for multi-threaded data binding, but the technique is still risky. This report attempts to explain how it works and what’s involved in using it safely.

  • Why Microsoft Believes that VB and C# Need an Asynchronous Syntax

    The new Async CPT for VB and C# looks like it may actually make it into the core language. But with all the emphasis on multi-core systems, why is Microsoft investing so heavily in syntax for designed specifically for making single-threaded asynchronous programming easier?