Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Go, Goroutines, Concorrência e Outros Bichos
Search
DevTalks Bauru
September 13, 2018
Programming
110
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
380
Como Garantir a Qualidade da Sua Aplicação
devtalksbauru
0
120
BDD - Além da Automação
devtalksbauru
0
110
PHP7 - Not for kids
devtalksbauru
0
57
A verdade sobre Frameworks
devtalksbauru
0
70
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
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
360
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.9k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
350
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
350
残高管理から台帳サービスへの進化
artoy
0
170
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
480
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
340
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Into the Great Unknown - MozCon
thekraken
41
2.8k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
Marketing to machines
jonoalderson
1
5.9k
Believing is Seeing
oripsolob
1
240
Git: the NoSQL Database
bkeepers
PRO
433
67k
Speed Design
sergeychernyshev
33
2.1k
Designing for Performance
lara
612
70k
We Are The Robots
honzajavorek
0
390
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
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