Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go, Goroutines, Concorrência e Outros Bichos
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
DevTalks Bauru
September 13, 2018
Programming
91
0
Share
Go, Goroutines, Concorrência e Outros Bichos
Talk do José Paulo Neto
DevTalks Bauru
September 13, 2018
More Decks by DevTalks Bauru
See All by DevTalks Bauru
Construindo Microsserviços a partir de um Monolito
devtalksbauru
0
240
Robôs para Mercado Financeiro com MQL
devtalksbauru
1
210
Introdução ao Universo React Native
devtalksbauru
0
370
Como Garantir a Qualidade da Sua Aplicação
devtalksbauru
0
100
BDD - Além da Automação
devtalksbauru
0
95
PHP7 - Not for kids
devtalksbauru
0
49
A verdade sobre Frameworks
devtalksbauru
0
56
Home Office: Você e a sua empresa estão preparados?
devtalksbauru
0
150
DevTalks #16 - Diminua seu código Java com Kotlin
devtalksbauru
0
220
Other Decks in Programming
See All in Programming
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
140
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
3
280
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
220
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
910
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Swift Concurrency Type System
inamiy
0
520
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
130
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
280
How Swift's Type System Guides AI Agents
koher
0
250
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
260
Don't Prompt Harder, Structure Better
kitasuke
0
750
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
500
Leo the Paperboy
mayatellez
7
1.7k
Crafting Experiences
bethany
1
110
Navigating Team Friction
lara
192
16k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
69
38k
Odyssey Design
rkendrick25
PRO
2
570
Transcript
Go Goroutines, Concorrência e outros bixos
José Paulo Neto Twitter => /J_Zes GitHub => /jzes Email
=>
[email protected]
CrowLabs https://t.me/crowlabs
Go “lang” ==> Inicio ==> Porque ?? ==> Quem ??
Concorrência “ Paralelismo é fazer varias coisas ao mesmo tempo,
concorrência é mais como lidar com varias coisas ao mesmo tempo. ” Rob Pike
concorrência != paralelismo ==> Concorrência é sobre estrutura Funções independentes
==> Paralelismo é sobre execução Só é possível com mais de um core ou processador
Explicando melhor
==> O Problema Mover pilhas de documentação de linguagens velhas
para a fogueira.
==> Como melhorar Mais trabalhadores, que vão precisar de mais
um carrinho
==> Não melhorou tanto Agora temos dois gargalos
==> Como melhorar Dupliquem Tudo !
==> Inclusive os recursos :(
==> Inclusive os recursos :(
==> Que tal dividirmos o trabalho??
==> Que tal dividirmos o trabalho?? E chamarmos mais amiguinhos??
==> Paralelismo Um Tipo de paralelismo
==> Paralelismo Uma outra forma de paralelisar
==> Como melhorar Juntando os dois!
De volta ao Go ==> Go foca em concorrência ==>
Paralelismo quando possível ==> Goroutines
Goroutines ==> Não são threads ==> Multiplexadas em threads ==>
Leves <2kb ==> Fácil implementação
Goroutines Implementação Sem Goroutine Com Goroutine
Goroutines Saidas Sem Goroutine Com Goroutine
Comunicação
Chanels
Chanels Implementação
Chanels Saida Todos os Workers iniciando
Fila Chanels
Main
Load e Struct
Processo Lento Qualquer
Fila Chanels Saida Processos startando “simultaneamente” antes da primeira saida
Processos com menor tempo de carga terminam e começam mais rápido O Programa só termina com a resposta de todos os chanels aguardados
Conclusões
Finis