2 pontos por GN⁺ 2023-07-18 | 1 comentários | Compartilhar no WhatsApp
  • Artigo que discute a necessidade e o formato de um pacote de corrotinas para Go
  • Corrotinas são um padrão de concorrência executado simultaneamente em pilhas diferentes, permitindo dados compartilhados e pontos explícitos de sincronização
  • O artigo apresenta exemplos de corrotinas em Lua e Python, destacando as diferenças entre as duas linguagens
  • Ao comparar corrotinas, threads e geradores, o texto mostra que corrotinas oferecem concorrência sem paralelismo
  • O artigo explora casos de uso de corrotinas em Go, como a iteração sobre coleções genéricas
  • É apresentada uma implementação simples de corrotinas em Go usando channels e goroutines
  • São fornecidos exemplos de uso de corrotinas, incluindo um parser de strings e um crivo de números primos
  • O artigo termina com uma discussão sobre a possibilidade de uma implementação otimizada de corrotinas no runtime de Go
  • Corrotinas são usadas para criar fluxos de controle concorrentes que executam ao mesmo tempo, mas sem paralelismo
  • O artigo explica a diferença entre corrotinas e goroutines
  • Corrotinas podem ser usadas para criar pipelines e filtros para processamento de dados
  • É fornecido um exemplo de implementação de um crivo de primos com corrotinas
  • O artigo discute melhorias para corrotinas, como tratamento de panic e cancelamento
  • Por meio de exemplos, mostra como corrotinas podem simplificar o código e facilitar sua organização
  • O artigo discute a implementação de corrotinas na linguagem de programação Go
  • Corrotinas são threads leves que podem ser pausadas e retomadas
  • A API de corrotinas inclui funções como New, resume, cancel e yield
  • Corrotinas podem ser usadas para criar nova concorrência sem introduzir paralelismo
  • A eficiência das corrotinas é otimizada por meio de diferentes implementações
  • A implementação baseada em channels leva cerca de 190ns por troca
  • A implementação baseada no compilador reduz o tempo de troca para 118ns por troca
  • A implementação mais eficiente usa troca direta de corrotinas e leva 20ns por troca
  • O artigo enfatiza a importância da otimização de corrotinas para desempenho
  • Corrotinas são úteis para processar gradualmente valores repetidos
  • A implementação de corrotinas em Go oferece uma ferramenta poderosa para desenvolvedores

1 comentários

 
GN⁺ 2023-07-18
Comentários no Hacker News
  • Discute os casos de uso de iteradores de função em Go e como escrevê-los para uso em loops for.
  • Alguns comentaristas expressam preocupação com a complexidade e a legibilidade da solução proposta.
  • Outros argumentam que corrotinas deveriam ser um recurso da linguagem, e não de biblioteca.
  • Há uma discussão sobre a diferença entre corrotinas e green threads, bem como as vantagens e desvantagens de cada uma.
  • Alguns comentaristas questionam se corrotinas são necessárias em Go, dizendo que goroutines e canais bloqueantes já são suficientes.
  • O artigo também menciona a possibilidade de adicionar estruturas de dados comuns, como Set, ao Go, o que poderia se beneficiar de iteradores.
  • O ponto principal do artigo é explorar se é possível implementar corrotinas de forma eficiente em Go sem introduzir novas construções na linguagem.