Skip to main content

Posts

Showing posts with the label concurrency

Ruby Concurrency Notes

Ниже мои заметки (именно заметки, без претензии на пост) по тематике обозначенной выше - тезисно. Похоже все согласны с тем что хорошие примеры concurency done right - это продукты вроде Erlang и Scala. Версии Ruby и поддержка concurrency: JRuby 1.6+ (true concurrency via JVM) Ruby MRI 1.9.3 (native threads, GIL, примитивы - Thread, Fiber, Actor, GIL из-за This decision maybe makes us happy because we can run most of the extensions written in C without any modifications  - т.е. видимо эти C-extensions are not thread safe. Обещали Multi-VM в YARV для победы над GIL) Rubinius 2.0+ (true concurrency, no GIL, fine grained locks, примитивы - те же что и у MRI 1.9.3) Concurrency models: Thread - тут все более менее понятно Fiber  - cooperative scheduling, если один фибер закончил работу передает управление следующему Reactor pattern - IOC, сложнее для понимания, представлен в виде библиотек  http://rubyeventmachine.com/  ( libevent ),  https://githu...