BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Concurrency Content on InfoQ

  • Exterminating Heisenbugs

    Victor Grazi presents ten tips to keep in mind when architecting or developing concurrent applications in Java.

  • Interview and Book Review: Programming Concurrency on the JVM

    In his latest book "Programming Concurrency on the JVM" author Venkat Subramaniam talks about the concurrency techniques using different JVM programming languages. He also discusses Software Transactional Memory (STM) and Actor-based Concurrency. InfoQ spoke with Venkat about his new book.

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

  • No Callbacks Required: StratifiedJS Returns Sequential Programming to Javascript

    StratifiedJS is a superset of Javascript that adds concurrency constructs and makes callback hell a thing of the past. How? InfoQ talked to Alexander Fritze, of Onilabs, to find out.

  • Profiling java.util.concurrent locks

    IBM’s Yao Qi, Raja Das, and Zhi Da Luo describe jucprofiler, an alphaWorks tool designed to profile multicore applications that make use of the java.util.concurrent classes introduced in Java 5.

  • Memory Barriers and JVM Concurrency

    Memory barriers, or fences, are a set of processor instructions used to apply ordering limitations on memory operations. This article explains the impact memory barriers have on the determinism of multi-threaded programs. We'll look at how memory barriers relate to JVM concurrency constructs such as volatile, synchronized and atomic conditionals.

  • Service Dynamics: the lazy man's way

    This article describes "the hardest topic in OSGi, how to deal with service dynamics," based on personal experience. Two factors, concurrency and direct service references, make the problem "fiendishly hard." An import and an export policy should form a comprehensive doctrine for dealing with service dynamics and the article explores two export policies with their corresponding doctrines.

  • Concurrency and Immutability

    This article explores the issue of immutability as a function of concurrency demands in modern software applications. The discussion occurs in the general context of dependency injection.

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

  • Using Ruby Fibers for Async I/O: NeverBlock and Revactor

    Rails 2.2 is schedule to be thread safe - but will blocking I/O libraries make it necessary to run multiple Ruby instances? We take a look at how non-blocking I/O and Ruby 1.9's Fibers help solve the problem. We talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.

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

BT