Elise Huard - Concurrency: Rubies, plural
For the last few years hardware manufacturers have driven increasingly powerful multi-core processors into consumer-grade computing hardware. Power which twenty years ago was restricted to a handful of government-funded research institutes is now available on the desktop, introducing many developers to the conundrum of how best to use it with languages implemented primarily for sequential environments. In this presentation we'll use code to explore the various traditional models for concurrent execution supported directly by Ruby - such as Threads, Processes and Fibres - and their limitations before turning to the approaches pioneered in other languages and seeing how many we can bring into the Ruby fold. We'll present characteristic examples of techniques drawn from a variety of languagesand demonstrate how to construct similar architectures in Ruby using its native features and libraries such as EventMachine or RevActor.