Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Olá Ractors

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Olá Ractors

Apresentarei os modelos de programação concorrente que o Ruby possui, tanto o MRI, quanto JRuby e TruffleRuby. Vantagens, desvantagens e diferenças; tudo com exemplos de código, para depois mostrar os Ractors. Ractor é uma nova abstração para concorrência que o Ruby 3 vai trazer. Pretendo, a partir de exemplos, mostrar como funcionam e como possibilitam rodar código Ruby em paralelo de maneira simples, e trocando dados entre cada thread.

Avatar for Caio Salgado

Caio Salgado

December 05, 2020

More Decks by Caio Salgado

Other Decks in Programming

Transcript

  1. • Caio Salgado • Software Engineer • Trabalho na Loft

    • Apaixonado por Ruby ❤ • Sempre pesquisando performance, concorrência e paralelismo
  2. E a grande novidade? Guilds Ractors (Ruby Actors) “Ractor is

    an Actor-model like concurrent abstraction designed to provide a parallel execution feature without thread-safety concerns.” https://www.ruby-lang.org/en/news/2020/09/25/ruby-3-0-0-preview1-released/
  3. Ractors • Atrizes são responsáveis por “atuar”, executar ações •

    Atuam ao receber mensagens, podendo: ◦ criar mais atores ◦ mandar mais mensagem ◦ tomar decisões • Só conversam por mensagens, não compartilham nada • Só podem alterar o próprio estado • Não precisam de LOCK!
  4. Ractors Seguranças e Garantias Bom: Limita o que pode ser

    compartilhado Ruim: Classes e Módulos não seguem essa regra
  5. Ractors Seguranças e Garantias Bom: Limita o que pode ser

    compartilhado Ruim: Classes e Módulos não seguem essa regra Ruim: Não é bala de prata (nada nunca é né...)