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
DevTalks Bauru
September 13, 2018
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
250
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
120
BDD - Além da Automação
devtalksbauru
0
100
PHP7 - Not for kids
devtalksbauru
0
53
A verdade sobre Frameworks
devtalksbauru
0
65
Home Office: Você e a sua empresa estão preparados?
devtalksbauru
0
160
DevTalks #16 - Diminua seu código Java com Kotlin
devtalksbauru
0
230
Other Decks in Programming
See All in Programming
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
550
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
750
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
4.7k
霧の中の代数的エフェクト
funnyycat
1
460
What's New in Android 2026
veronikapj
0
250
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
390
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
640
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
210
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
540
数百円から始めるRuby電子工作
tarosay
0
130
Google Apps Script で Ruby を動かす
kawahara
0
130
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
890
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Context Engineering - Making Every Token Count
addyosmani
9
1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
330
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.7k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
480
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
340
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
GraphQLとの向き合い方2022年版
quramy
50
15k
So, you think you're a good person
axbom
PRO
2
2.1k
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