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
63
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
190
Robôs para Mercado Financeiro com MQL
devtalksbauru
1
180
Introdução ao Universo React Native
devtalksbauru
0
340
Como Garantir a Qualidade da Sua Aplicação
devtalksbauru
0
77
BDD - Além da Automação
devtalksbauru
0
76
PHP7 - Not for kids
devtalksbauru
0
37
A verdade sobre Frameworks
devtalksbauru
0
40
Home Office: Você e a sua empresa estão preparados?
devtalksbauru
0
110
DevTalks #16 - Diminua seu código Java com Kotlin
devtalksbauru
0
150
Other Decks in Programming
See All in Programming
2024 コーディング研修
ckazu
2
610
TypeScriptから始める VR生活
tamagokakeg
2
100
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
140
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
15
1.8k
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
2
460
禅の心を手に入れよ
eltociear
2
460
Escolhendo (ou não) o melhor ORM para o seu projeto
andreiacsilva
1
120
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
5
320
Docker_OSS_ホスティング入門
satokoki645
0
140
The grand strategy of Ruby Parser
yui_knk
3
110
Criando a Woovi em uma semana
daniloab
0
120
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
92
4.8k
How GitHub (no longer) Works
holman
305
140k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
What's in a price? How to price your products and services
michaelherold
238
11k
Designing Experiences People Love
moore
136
23k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
0
91
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
Web Components: a chance to create the future
zenorocha
306
41k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Atom: Resistance is Futile
akmur
260
25k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
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