Sicronização
Origem: Wikipédia, a enciclopédia livre.
Sincronização é o gerenciamento adequado de múltiplas linhas de execução ou processos concorrentes que acessam um mesmo recurso limitado ou uma porção de dados, situação conhecida como race condition.
Este gerenciamento em geral deve prover acesso a todas as linhas de execução dentro dos limites do recurso limitado, de modo que todas tenham tempo finito de espera (não ficarão em espera infinita). No caso de acesso a uma porção de dados, as leituras e escritas realizadas devem ocorrer de modo a preservar a consistência.
Entre os mecanismos que provém sincronização podemos citar os semáforos e mutexes (mutual exclusion, exclusão mútua) que definem regiões críticas.
Sincronização é útil em programas multithread para manter a consistência de dados usados por diversas linhas de execução, em sistemas distribuídos para controlar o acesso de diversos nós a um recurso limitado e bancos de dados para escalonar adequadamente acessos concorrentes à base.