Concurrency: Rubies, plural
summary
Compares concrete concurrency models and shows working code: Ruby Fibres bound to threads as coroutine implementations with enumerators, OS copy-on-write for forks and pipes for interprocess comms, thread queues and thread-local vars for shared-state avoidance, and a JRuby bridge using the closure_gen gem to exercise Software Transactional Memory. Demonstrations include parallel/map-reduce with the parallel and plists gems and evented servers with EventMachine or RevActor; examples compile and run and expose where performance or semantics break.
AI-written summary · about
chapters (35)
- 0:00Intro
- 0:11Gold Sponsors
- 3:25diminishing returns
- 4:27an aide to good design
- 6:16victims of choice
- 10:08icon coexpressions
- 11:52ruby fibers
- 12:48ruby coexpressions
- 14:05ruby coroutines
- 14:52icon revisited
- 16:46processes + threads
- 17:31schedulers
- 18:28feature comparison
- 21:41forking
- 23:29context switching
- 25:07shared state hurts
- 27:00semaphores
- 27:25synchronising processes
- 28:55complexity
- 29:31threads under the hood
- 30:19the global lock
- 31:25synchronisation
- 32:53threads + sockets
- 35:29the macruby twist
- 39:05vector processing
- 39:30map/reduce
- 39:52a two-phase operation
- 41:48process calculi
- 43:46a signal generator
- 46:40erlang
- 49:22rubinius actors
- 50:15ruby revactor
- 50:57promises + futures
- 51:46ruby futures
- 52:24reinventing?








