This document discusses concurrency in Ruby. It begins with an introduction to concurrency and how it differs from parallelism. It then discusses threads versus processes, and how threads are implemented in Ruby. Examples are given that demonstrate how appending to arrays is not thread-safe in MRI Ruby. The document also discusses how Rails 4 is concurrency enabled by default. It proposes using the actor model as an easier way to write safe concurrent code compared to using locks. Finally it provides examples of solving the producer-consumer problem using both locks and actors in JRuby.