The Java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.
In this presentation from QCon London 2008, Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, Software Transactional Memory, the history of concurrency, alternatives to threads, Erlang, Scala, and recommendations for concurrency in Java.
Work is going on to make Rails 2.2 be thread safe - we look at what's been done. Also: ETags support has been added to Rails Edge.
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.
"FXRuby: Create Lean and Mean GUIs with Ruby" is a new book about the FXRuby GUI library. InfoQ talked to the book's author Lyle Johnson about FXRuby's implementation, threading and more. Also: an InfoQ-exclusive sample chapter from the book.
Research on the topic of Multiple VM (MVM) Ruby will be conducted at the University of Tokyo together with Sun's JRuby team. The work will investigate issues such as communication between VMs and a common API across all Ruby implementations, with solutions provided initially for Ruby and JRuby.
Actors, Fibers/Coroutines, Rubinius' Multi-VM and other Concurrency topics have come up recently. To put all these concepts into perspective, we talked to Ruby's MenTaLguY, who's been working on Ruby fastthread, Ruby Actors implementations, Rubinius, and much more. Also: a glimpse at MenTaLguY's next project.
A JDJ article explains that as we move towards Multi-Core processor architectures, single threaded performance improvement is likely to see a significant slowdown over the next one to three years. In some cases, single-thread performance may even drop. This in turn will require software developers change the way we develop software, increasing our utilization of parallel execution architectures.
Quite often performance problems will be reported with some very antidotal comments that do nothing to help you understand where to start looking. Faced with this dilemma, it is not uncommon for teams to start guessing at the root cause. Now enter "the box", a little diagram that is an abstraction of a complete system. The box is a reminder of the true cases of performance bottlenecks.
Fibers were recently in the Ruby 1.9 branch. The Coroutine-like concept has many uses, such as implementing lightweight concurrency and others. We look at the concept and influences of Fibers in Ruby 1.9, as well as code samples.
Ruby's thread system is about to undergo big changes in Ruby 1.9, possibly moving from user space threads to kernel threads. Or not. A recent interview with Matz and Sasada Koichi shows some new ideas that are considered. We take a look at the different possible future Ruby threading systems.
Are Ruby 1.x User-space threads a hindrance with writing GUIs? We take a brief look at the situation and show the situation, options and alternatives such as using JRuby.