SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
s3wf.com
@jeffotoni
DevOps Belo Horizonte, Setembro 29 2018
Jefferson Otoni
Golang além do
“hello world”
t.me/devopsbh
@jeffotoni
O que é goroutines ?
O que é channels ?
01
02
03
Por que goroutines é poderoso ?
04
05
GOMAXPROCS o que é ?
06
Concorrência != Paralelismo
O que é
Goroutine?
go func(c *int, p chan <- string){ .. }(c, p)
https://rakyll.org/scheduler/
P1 = processador
M = Threads
G = Goroutine
GO SCHEDULER *V1
M : N
P1 = processador
M = Threads
G = Goroutine
GO SCHEDULER *V2
https://morsmachine.dk/go-scheduler
http://supertech.csail.mit.edu/papers/steal.pdf
M0
M0M1 M1
P
Syscall
G
G
G
G
G
G
G0
P
G0
O que é
GOMAXPROCS?
Executando centenas de Goroutines
$ GOMAXPROCS = 64
CONCORRÊNCIA
não é
PARALELISMO
http://whisperd.tech/post/go-channel/
O que é
CHANNELS ?
CHANNELS
&
BUFFERS
Criando contadores com ponteiros
Tickers
Workers super poderoso
GOROUTINES MEMORY USAGE
Mem(GB) Goroutine
1
2
4
8
16
32
370
740k
1.5M
2.9M
5.9M
11.8
Fonte: Concorrência em Go
Por que
Go é tão poderoso?
Concorrência é poderosa.
Concorrência não é paralelismo.
Concorrência permite paralelismo.
A Concorrência facilita o paralelismo (e escalonamento e tudo mais)
Conclusão
Thanks := &Origado{...}
Obrigado...
github.com/jeffotoni
instagram.com/jeffotoni
https://t.me/devopsbh
https://t.me/go_br
https://t.me/awsbrasil

Mais conteúdo relacionado

Mais de jefferson Otoni Lima

Mais de jefferson Otoni Lima (15)

Cloud e Ged
Cloud e GedCloud e Ged
Cloud e Ged
 
Desktop e go!
Desktop e go!Desktop e go!
Desktop e go!
 
Lambdas & Golang
Lambdas & GolangLambdas & Golang
Lambdas & Golang
 
Do zero ao deploy
Do zero ao deployDo zero ao deploy
Do zero ao deploy
 
Rest, sockets em golang
Rest, sockets em golangRest, sockets em golang
Rest, sockets em golang
 
Serverless & golang
Serverless & golang Serverless & golang
Serverless & golang
 
Startup o que é ?
Startup o que é ?Startup o que é ?
Startup o que é ?
 
Gestão De tecnologias Digitais - Ramo Imobiliário
Gestão De tecnologias Digitais - Ramo ImobiliárioGestão De tecnologias Digitais - Ramo Imobiliário
Gestão De tecnologias Digitais - Ramo Imobiliário
 
Como gerar trafego para seu E-commerce
Como gerar trafego para seu E-commerceComo gerar trafego para seu E-commerce
Como gerar trafego para seu E-commerce
 
Palestra meio-pagamento-qual-escolher-para-seu-ecommerce
Palestra meio-pagamento-qual-escolher-para-seu-ecommercePalestra meio-pagamento-qual-escolher-para-seu-ecommerce
Palestra meio-pagamento-qual-escolher-para-seu-ecommerce
 
contabTools Sumário Executivo
contabTools Sumário ExecutivocontabTools Sumário Executivo
contabTools Sumário Executivo
 
Startup Zaion
Startup ZaionStartup Zaion
Startup Zaion
 
Logística no comércio eletrônico - ecorreios
Logística no comércio eletrônico - ecorreiosLogística no comércio eletrônico - ecorreios
Logística no comércio eletrônico - ecorreios
 
BH WAVE - TECNOLOGIA PARA INTERNET
BH WAVE - TECNOLOGIA PARA INTERNETBH WAVE - TECNOLOGIA PARA INTERNET
BH WAVE - TECNOLOGIA PARA INTERNET
 
Como atrair-clientes-para-sua-loja-virtual
Como atrair-clientes-para-sua-loja-virtualComo atrair-clientes-para-sua-loja-virtual
Como atrair-clientes-para-sua-loja-virtual
 

Golang além do hello world