Course Hive
Search

Welcome

Sign in or create your account

Continue with Google
or
Cap. 21 – Canais – 1. Entendendo canais
Play lesson

Aprenda Go 🇧🇷 - Cap. 21 – Canais – 1. Entendendo canais

5.0 (2)
47 learners

What you'll learn

This course includes

  • 21.3 hours of video
  • Certificate of completion
  • Access on mobile and TV

Summary

Keywords

Full Transcript

- Canais são o Jeito Certo® de fazer sincronização e código concorrente. - Eles nos permitem trasmitir valores entre goroutines. - Servem pra coordenar, sincronizar, orquestrar, e buffering. - Na prática: - make(chan type, b) - Canais bloqueiam: - Eles são como corredores em uma corrida de revezamento - Eles tem que "passar o bastão" de maneira sincronizada - Se um corredor tentar passar o bastão pro próximo, mas o próximo corredor não estiver lá... - Ou se um corredor ficar esperando receber o bastão, mas ninguem entregar... - ...não dá certo. - Exemplos: - Poe um valor num canal e faz um print. Block. - Código acima com goroutine. - Ou com buffer. Via de regra: má idéia; é legal em certas situações, mas em geral é melhor sempre passar o bastão de maneira sincronizada. - Interessante: ref/spec → types - Código: - Block: https://play.golang.org/p/dClS7vQlYE (não roda!) - Go routine: https://play.golang.org/p/ZbNCwUuiPi - Buffer: https://play.golang.org/p/32vYvCR7qn - Buffer block: https://play.golang.org/p/smeW6vigAT - Mais buffer: https://play.golang.org/p/Pe2pcboGiA

Course Hive

Continue this lesson in the app

Install CourseHive on Android or iOS to keep learning while you move.

Related Courses

FAQs

Course Hive
Download CourseHive
Keep learning anywhere