Sobes.tech
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.