BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Multi-threading Content on InfoQ

Articles

RSS Feed
  • Virtual Threads: New Foundations for High-Scale Java Applications

    Virtual threads are a lightweight implementation of Java threads, delivered as a preview feature in Java 19.  They dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications. Virtual threads breathe new life into the familiar thread-per-request style of programming, allowing it to scale with near-optimal hardware utilization.

  • Microservice Threading Models and their Tradeoffs

    A microservice's efficiency and resource consumption patterns are dramatically affected by its threading model. Choosing the correct model for your solution is a basic requirement for success. Glenn Engstrand investigates multiple options for a service's execution life-cycle, gives examples of the benefits and drawbacks for each choice, and provides recommendations for each model's implementation.

  • UED: The Unified Execution Diagram

    Today’s software applications have a lot of concurrent tasks that are distributed over multiple threads, processes, processors and PCs. This article introduces a visual modeling technique to describe and specify the application’s execution architecture. Within Philips Healthcare the Unified Execution Diagram has proven to be very useful for designing and documenting the execution architecture.

  • Book Review and Interview: Real World OCaml

    The new book Real World OCaml provides a deep dive into the OCaml programming language. InfoQ caught up with the authors to hear about real world Ocaml users, its unique features, and much more.

  • Inter-thread communications in Java at the speed of light

    Developing a light-weight, lockless, inter-thread communication framework in Java without using any locks, synchronizers, semaphores, waits, notifies; and no queues, messages, events or any other concurrency specific words or tools. Just get POJOs communicating behind plain old Java interfaces.

  • Joe Duffy on Uniqueness and Reference Immutability for Safe Parallelism

    We interviewed Joe Duffy, author of Concurrent Programming on Windows, about his research into the use of type systems to ensure safe parallelism. This work was presented in the paper titled Uniqueness and Reference Immutability for Safe Parallelism. We asked for this interview because there seemed to be a lot of misconceptions about this research project.

  • Designing Next-Generation Massively Multithreaded Architectures for Irregular Applications

    In this article, authors discuss Cray XMT, a massively multithreaded architecture framework that addresses the needs of irregular data-intensive applications in emerging fields like bioinformatics, semantic databases, natural language processing, and social network analysis. They also compare this approach with other multithreaded architectures such as GPUs and UltraSPARC processors.

  • Joe Duffy on the Future of Concurrency and Parallelism

    Joe Duffy, author of Concurrent Programming on Windows, talks about the future of concurrency and parallelism. This interview covers his thoughts on the language designs, libraries, and patterns that are becoming increasing important in modern programming.

  • Using the Concurrency and Coordination Runtime

    Nick Gunn provides a practical introduction the Concurrency and Coordination Runtime for .NET. CCR radically changes the way multi-threaded applications are written in .NET, shifting the focus from threads and locks to lightweight, asynchronous tasks.

  • Introducing Multithreaded Programming to JavaScript

    While increasingly more websites are fully or partially based on AJAX, it is still difficult to develop complicated AJAX applications. What is the main issue which causes this difficulty in developing AJAX applications? Is it asynchronous communication with the server, or is it GUI programming? How can a multithreading JavaScript library help to ease some of these issues?

  • Do Java 6 threading optimizations actually work? - Part II

    Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.

  • Do Java 6 threading optimizations actually work?

    Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.

BT