Go para programao paralela SECOMP Alexandre Medeiros - - PowerPoint PPT Presentation

go para programa o paralela
SMART_READER_LITE
LIVE PREVIEW

Go para programao paralela SECOMP Alexandre Medeiros - - PowerPoint PPT Presentation

Go para programao paralela Go para programao paralela SECOMP Alexandre Medeiros alexandre.n.medeiros@gmail.com Instituto de Computao Universidade Estadual de Campinas 14 de agosto de 2014 Go para programao paralela Uma


slide-1
SLIDE 1

Go para programação paralela

Go para programação paralela

SECOMP Alexandre Medeiros

alexandre.n.medeiros@gmail.com

Instituto de Computação Universidade Estadual de Campinas

14 de agosto de 2014

slide-2
SLIDE 2

Go para programação paralela

Uma versão mais completa desses slides e diversos exemplos podem ser encontrados na minha página! alemedeiros.sdf.org

slide-3
SLIDE 3

Go para programação paralela Introdução

O que é Go?

Golang Go, ou Golang, é uma linguagem de programação Open Source onde é fácil fazer programas simples, confiáveis e eficientes.

slide-4
SLIDE 4

Go para programação paralela Introdução

O que é Go?

Criadores A linguagem foi desenvolvida por Robert Griesemer, Rob Pike e Ken Thompson no Google.

slide-5
SLIDE 5

Go para programação paralela Introdução

Principais ideias

Compilação rápida Execução rápida Simples de se programar

slide-6
SLIDE 6

Go para programação paralela Introdução

Principais ideias

Compilação rápida Execução rápida Simples de se programar

slide-7
SLIDE 7

Go para programação paralela Introdução

Principais ideias

Compilação rápida Execução rápida Simples de se programar

slide-8
SLIDE 8

Go para programação paralela Introdução Funcionalidades

Funcionalidades interessantes

Sintaxe amplamente inspirada em C Garbage-collected Inferência de tipos de variáveis

slide-9
SLIDE 9

Go para programação paralela Introdução Funcionalidades

Funcionalidades interessantes

Sintaxe amplamente inspirada em C Garbage-collected Inferência de tipos de variáveis

slide-10
SLIDE 10

Go para programação paralela Introdução Funcionalidades

Funcionalidades interessantes

Sintaxe amplamente inspirada em C Garbage-collected Inferência de tipos de variáveis

slide-11
SLIDE 11

Go para programação paralela Introdução Funcionalidades

E mais importante!

Projetada para ser simples de se criar programas concorrentes.

slide-12
SLIDE 12

Go para programação paralela Introdução Funcionalidades

E mais importante!

Projetada para ser simples de se criar programas concorrentes.

slide-13
SLIDE 13

Go para programação paralela É fácil de aprender!

Hello, World!

package main import " fmt " func main () { fmt.Println( " H e l l o , World ! " ) }

Programa 1: hello.go

slide-14
SLIDE 14

Go para programação paralela É fácil de aprender! Programas concorrentes

goroutines

Uma goroutine é uma lightweight thread, gerenciada pelo runtime.

slide-15
SLIDE 15

Go para programação paralela É fácil de aprender! Programas concorrentes

Canais de comunicação

Os channels são a principal maneira de comunicação e sincronização entre goroutines.

slide-16
SLIDE 16

Go para programação paralela É fácil de aprender! Programas concorrentes

Canais de comunicação

func say(s s t r i n g , done chan bool ) { f or i := 0; i < 3; i++ { time.Sleep (100 * time. Millisecond ) fmt.Println(s) } done <- true } func main () { done := make(chan bool ) go say( " H e l l o , World ! " , done) i f <-done { fmt.Println( " Done : ) " ) } }

Programa 2: channels.go

slide-17
SLIDE 17

Go para programação paralela É fácil de aprender! Programas concorrentes

Canais de comunicação

$ go run channels.go

Hello , World! Hello , World! Hello , World! Done :)

slide-18
SLIDE 18

Go para programação paralela É fácil de aprender! Ferramentas

Conjunto de ferramentas completo

go build go run gofmt godoc go get

slide-19
SLIDE 19

Go para programação paralela É fácil de aprender! Ferramentas

Conjunto de ferramentas completo

go build go run gofmt godoc go get

slide-20
SLIDE 20

Go para programação paralela É fácil de aprender! Ferramentas

Conjunto de ferramentas completo

go build go run gofmt godoc go get

slide-21
SLIDE 21

Go para programação paralela É fácil de aprender! Ferramentas

Conjunto de ferramentas completo

go build go run gofmt godoc go get

slide-22
SLIDE 22

Go para programação paralela É fácil de aprender! Ferramentas

Conjunto de ferramentas completo

go build go run gofmt godoc go get

slide-23
SLIDE 23

Go para programação paralela É fácil de aprender! Links úteis

Referências

tour.golang.org gobyexample.com

slide-24
SLIDE 24

Go para programação paralela É fácil de aprender! Links úteis

Divirta-se você também!

play.golang.org

slide-25
SLIDE 25

Go para programação paralela That’s all folks

Dúvidas?

slide-26
SLIDE 26

Go para programação paralela That’s all folks

Fim!

Contato: alexandre.n.medeiros@gmail.com