Junior — Middle
Pode explicar o que significa processos bloqueados numa aplicação multithread?
sobes.tech IA
Resposta da IA
Processos bloqueados (deadlock ou bloqueio mútuo) numa aplicação multithread é uma situação em que dois ou mais processos (threads) esperam uns pelos outros para libertar recursos, e nenhum deles consegue continuar.
Por exemplo, o processo A obteve o recurso 1 e espera pelo recurso 2, enquanto o processo B obteve o recurso 2 e espera pelo recurso 1. Ambos os processos estão bloqueados indefinidamente.
Para evitar deadlocks, usam-se:
- Regras para a aquisição de recursos numa ordem específica.
- Tempos limite de espera.
- Uso de algoritmos para detectar e resolver deadlocks.
No iOS, isto é importante ao trabalhar com multithreading, por exemplo, com GCD ou NSLock, para evitar que a aplicação fique presa.