Introdução a concorrência em Go

Uma das funcionalidades mais legais de Go é a facilidade de se utilizar concorrência. A linguagem nos fornece as chamadas goroutines que são lighweight threads gerenciadas pelo própio runtime do Go. Concorrência nos permite rodar diversas funções ao mesmo tempo. Isso é extremamente útil caso você queira melhorar a performance de sua aplicação.

Para utilizar essa funcionalidade, basta colocar a palavra-chave go antes de qualquer função e ela automaticamente vai estar rodando de forma concorrente. Para ficar mais fácil de entender, vamos ver um pouco de código. Aqui está implementado o SleepSort, é um algoritmo de ordenação que utiliza um sleep para poder colocar cada elemento no seu lugar.