Vamos colocar em prática...
Até o momento, exploramos os conceitos fundamentais para compreender concorrência. Esses tópicos incluem:
O que é um programa a nível de SO: como os programas interagem com o SO
Propriedades de um processo: estrutura, estado e formas de comunicação entre processos
Escalonamento preemptivo de tarefas: como o SO gerencia a execução e troca de tarefas
Clone de processos (forking): como novos processos são criados
Clone de processos leves (threading): diferenças entre criação de processos e threads
Uma nota sobre paralelismo: concorrência não é paralelismo
Desafios em cenário de concorrência: problemas comuns como condições de corrida e data races
I/O síncrono e assíncrono: como estas operações afetam o desempenho e design de sistemas concorrentes
Com isto tudo que foi passado, temos já o conhecimento necessário para entrarmos na segunda parte deste guia, trazendo exemplos práticos que implementam concorrência em diversas linguagens.
Não se preocupe, irei trazer exemplos auto-contidos e didáticos de forma que não será necessário entender todas as linguagens de forma profunda.
Last updated