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
110
BDD - Além da Automação
devtalksbauru
0
100
PHP7 - Not for kids
devtalksbauru
0
53
A verdade sobre Frameworks
devtalksbauru
0
64
Home Office: Você e a sua empresa estão preparados?
devtalksbauru
0
150
DevTalks #16 - Diminua seu código Java com Kotlin
devtalksbauru
0
230
Other Decks in Programming
See All in Programming
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
さぁV100、メモリをお食べ・・・
nilpe
0
140
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
710
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
200
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
6
1.3k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
270
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
3Dシーンの圧縮
fadis
1
780
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
5.4k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Become a Pro
speakerdeck
PRO
31
6k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Music & Morning Musume
bryan
47
7.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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