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
79
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
97
BDD - Além da Automação
devtalksbauru
0
91
PHP7 - Not for kids
devtalksbauru
0
47
A verdade sobre Frameworks
devtalksbauru
0
49
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
自作OSでDOOMを動かしてみた
zakki0925224
1
1.4k
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
3
1.8k
Laravel Boost 超入門
fire_arlo
2
160
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
210
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
380
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
1
180
Honoアップデート 2025年夏
yusukebe
1
880
時間軸から考えるTerraformを使う理由と留意点
fufuhu
3
200
為你自己學 Python - 冷知識篇
eddie
1
310
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
1
760
Jakarta EE Core Profile and Helidon - Speed, Simplicity, and AI Integration
ivargrimstad
0
260
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
25
9.4k
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
45
7.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Docker and Python
trallard
45
3.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
570
A Modern Web Designer's Workflow
chriscoyier
696
190k
Speed Design
sergeychernyshev
32
1.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
A better future with KSS
kneath
239
17k
Facilitating Awesome Meetings
lara
55
6.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Building Applications with DynamoDB
mza
96
6.6k
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