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
0
84
Go, Goroutines, Concorrência e Outros Bichos
Talk do José Paulo Neto
DevTalks Bauru
September 13, 2018
Tweet
Share
More Decks by DevTalks Bauru
See All by DevTalks Bauru
Construindo Microsserviços a partir de um Monolito
devtalksbauru
0
210
Robôs para Mercado Financeiro com MQL
devtalksbauru
1
200
Introdução ao Universo React Native
devtalksbauru
0
360
Como Garantir a Qualidade da Sua Aplicação
devtalksbauru
0
98
BDD - Além da Automação
devtalksbauru
0
93
PHP7 - Not for kids
devtalksbauru
0
49
A verdade sobre Frameworks
devtalksbauru
0
50
Home Office: Você e a sua empresa estão preparados?
devtalksbauru
0
130
DevTalks #16 - Diminua seu código Java com Kotlin
devtalksbauru
0
200
Other Decks in Programming
See All in Programming
Dive into Triton Internals
appleparan
0
440
AkarengaLT vol.38
hashimoto_kei
1
130
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
880
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
320
Swift Concurrency 年表クイズ
omochi
3
220
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
270
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
750
SODA - FACT BOOK(JP)
sodainc
1
9.2k
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
360
Developer Joy - The New Paradigm
hollycummins
1
400
マンガアプリViewerの大画面対応を考える
kk__777
0
450
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
minodriven
4
810
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
27
2.2k
Designing Experiences People Love
moore
142
24k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Practical Orchestrator
shlominoach
190
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Faster Mobile Websites
deanohume
310
31k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Navigating Team Friction
lara
190
15k
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