Discussion on Thread between version 1.8.6 and 2.2.3
summary
Ruby 1.8.6 causes threads to silently hang so a custom watcher is built: each child thread updates a timestamp and the main thread checks those timestamps. Reproduced with 1 process × 100 threads (original was 100 processes × 100 threads). Findings: Thread#status lies when a child enters an infinite loop, Timeout causes mass stalls when many threads raise timeout exceptions, Ruby 2.2.3 reduces some failures but shows higher CPU and larger memory for exception-heavy workloads, so monitoring and avoiding Timeout/expensive allocations remains necessary.
AI-written summary · about
chapters (6)
- 0:00Introduction and speakers
- 2:57Thread challenges overview
- 11:04Case studies and version comparison
- 20:32Performance and memory impact
- 22:01Conclusion and future considerations
- 23:59Q&A session
related talks
37mEverything you ever wanted to know about threads...
47mWhat All Rubyists Should Know About Threads
39mConcurrent Systems in Ruby
42mLook out! Gotchas of Using Threads in Ruby
38mScaling Ruby with Actors, or How I Learned to Stop Worrying and Love Threads
33mDear God What Am I Doing? Concurrency and Parallel Processing
18mThreads, callbacks, and execution context in Ruby
27mParallel Ruby: Managing the Memory Monster
