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.
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.
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. 15
Nick Gunn provides a practical introduction CCR for .NET. CCR radically changes the way multi-threaded applications are written in .NET, shifting the focus from threads to asynchronous tasks. 5
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project. 1
While increasingly more websites are utilizing AJAX, it is still difficult to develop complicated AJAX applications. This article explores how multithreading eases some of these issues. 10
Jeroen Borgers examines if biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking techniques in the latest JVMs actually work in highly-concurrent apps. 3
Jeroen Borgers examines if biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking techniques in the latest JVMs actually work in highly-concurrent apps. 16
Simon Brown distills some key scalability principles derived from a summit of architects and adds his own perspectives. 7
Concurrency, Actors, Fibers/Coroutines, Rubinius' Multi-VM, and more - a lot of interesting topics. We caught up with Ruby's MenTaLguY who can shed light about all of them. 1
Finding performance bottlenecks can be a difficult task and it can get more difficult as our applications grow in size. The Box is a methodology tool that focuses us efforts to improve performance. 6