# Introdução

Já faz algum tempo que estou querendo escrever sobre concorrência, mas ~~minha procrastinação~~ minha rotina não deixou. E também porque estive ocupado o primeiro semestre de 2024 criando [uma](https://dev.to/leandronsp/construindo-um-web-server-em-assembly-x86-parte-i-introducao-14p5) [saga](https://dev.to/leandronsp/construindo-um-web-server-em-assembly-x86-parte-ii-historia-e-arquitetura-2jb9) de [artigos](https://dev.to/leandronsp/construindo-um-web-server-em-assembly-x86-parte-iii-codigo-de-maquina-bgk) [sobre](https://dev.to/leandronsp/construindo-um-web-server-em-assembly-x86-parte-iv-um-assembly-modesto-oif) [Assembly](https://dev.to/leandronsp/construindo-um-web-server-em-assembly-x86-parte-v-finalmente-o-server-9e5) [x86](https://dev.to/leandronsp/construindo-um-web-server-em-assembly-x86-the-grand-finale-multi-threading-24hp).

> Também não sei porque

Enfim, concorrência (*plus* paralelismo) é um assunto que gosto de explorar e conversar sobre, portanto chegou a hora de compartilhar um pouco da visão que tenho com relação a este tema.

Vá com moderação, não espere um guia acadêmico, formalidade e nem um tutorial rápido. O que pretendo aqui é trazer fundamentos de concorrência de **forma acessível e didática**, buscando lá na superfície do sistema operacional como isto funciona, tanto a nível de CPU, memória e I/O; e também como diferentes linguagens (leia-se *runtimes*) implementam concorrência.

E claro, não posso escrever um guia sobre concorrência sem começar com o famoso clichê: **concorrência não é paralelismo**.

> Pra não mencionar o *assincronismo*, que também vamos abordar ao longo deste guia

Se você sempre se deparou com explicações confusas, apresentadas de forma inacessível, ou então carregadas de jargões e até mesmo analogias que mais atrapalham que ajudam - calma gente, eu gosto de analogias, mas *boas* analogias -, então este guia é pra você.
