Notas sobre o vídeo
Palestra de Rob Pike, um dos criadores do Go, na conferência Waza do Heroku em 2012.
-
“O mundo não é orientado a objetos e sim paralelo”
-
Concorrência é sobre lidar com várias coisas ao mesmo tempo.
-
Paralelismo é sobre fazer várias coisas ao mesmo tempo.
-
Um é sobre estrutura, o outro sobre execução.
- Concorrência provê uma forma de estruturar a solução para um problema, que pode ou não ser executada em paralelo.
- Ex.: um sistema operacional gerencia mouse, teclado, monitor e alto-falante ao mesmo tempo. Com um ou vários núcleos, o modelo de programação é concorrente, podendo ou não ser paralelo.
- Concorrência é a forma de estruturar um programa, quebrando-o em partes que podem ser executadas de forma independente.
- Um programa bem estruturado de forma concorrente pode ganhar paralelismo de graça quando há mais núcleos disponíveis; o contrário não é verdade.
Em Go, isso aparece nas goroutines e channels (guia de Go); em Java, nas virtual threads.
- Acesse os slides
- Dica de leitura: Communicating Sequential Processes, Hoare - 1978
- Comentários sobre a leitura: Hoare on communicating sequential processes