Principais desafios em cenário de concorrência
Last updated
Last updated
Quando temos um fator externo decidindo quando alternar as tarefas/threads, não temos qualquer controle sobre a ordem com que estas threads serão executadas.
Seja por time-slice, por prioridade ou até mesmo espera no I/O, a decisão do escalonador de quando uma thread vai ser executada e em qual ordem, não está sob nosso controle.
Na imagem acima podemos ver que, apesar de T1 ter iniciado antes que a T2, só foi concluída depois. No meio do processo - e por algum motivo que nunca vamos saber qual e nem queremos saber -, o escalonador decidiu interromper a execução da T1 pra priorizar a T2 até sua conclusão.
Vai entender, é cada doido nesse mundo...
Então com isso adicionamos uma variável que torna o mundo da concorrência tão desafiador.