Trilha Sênior Trilha

Ruby: concorrência

O curso compara os modelos de concorrência do Ruby: threads, Fibers, processos e Ractors. Ele separa o trabalho que espera do trabalho que calcula e explica por que as threads do CRuby sobrepõem I/O, enquanto o trabalho preso em CPU pede processos ou Ractors. Ele cobre fork e copy-on-write, as regras de compartilhamento dos Ractors, a API do Ruby 4.0.1 e o erro de isolamento que o Active Record levanta num Ractor. A segurança entre threads aparece como decisão de design, com Mutex, Queue e estado por requisição. A última lição aplica um critério de decisão a três cargas num processo Rails.

O que você vai aprender

  • ✓Como threads, Fibers, processos e Ractors diferem em paralelismo e compartilhamento de objetos
  • ✓Por que as threads do CRuby sobrepõem esperas de I/O e não trabalho de CPU
  • ✓Como fork, copy-on-write e serialização definem o custo dos processos
  • ✓As regras de compartilhamento dos Ractors, a API do Ruby 4.0.1 e seus limites atuais com o Rails
  • ✓Projetar estado seguro entre threads com Mutex, Queue e ActiveSupport::CurrentAttributes
  • ✓Escolher um modelo para cada carga e ler as configurações de threads e conexões do Puma
Prévia grátis · Aula 1 5 min de leitura

Três modelos, uma decisão

Um ticket cai no seu quadro: "a página de checkout chama quatro serviços e leva 1,8 segundo". Você já sabe que a correção é parar de chamá-los um depois do outro. O que você precisa decidir é qual modelo de concorrência do Ruby usar, e essa decisão tem três candidatos reais, e não um.

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...