Deadlock

Um deadlock é uma condição em que um programa não consegue acessar um recurso de que precisa para continuar. Quando um aplicativo ativo entra em um deadlock, ele pode "travar" ou deixar de responder.

Recursos, como dados salvos ou armazenados em cache, podem ser bloqueados quando acessados por um processo específico dentro de um programa. Bloquear os dados impede que outros processos os substituam prematuramente. Se um processo ou uma consulta precisar acessar dados bloqueados, mas o processo que os bloqueou não os liberar, poderá ocorrer um deadlock.

Por exemplo, a situação a seguir causará um deadlock entre dois processos:

  • O processo 1 solicita o recurso B ao processo 2.
  • O recurso B fica bloqueado enquanto o processo 2 está em execução.
  • O processo 2 precisa do recurso A do processo 1 para concluir sua execução.
  • O recurso A fica bloqueado enquanto o processo 1 está em execução.

O resultado é que o processo 1 e o processo 2 ficam esperando um pelo outro terminar. Como nenhum dos processos pode continuar até que o outro seja concluído, um deadlock é criado.

Evitando deadlocks

Desenvolvedores podem evitar deadlocks evitando condições de bloqueio na lógica de programação. Por exemplo, em vez de fazer com que dois processos dependam um do outro, o código-fonte pode ser escrito de modo que cada thread termine antes que outra thread precise de seus recursos. Ao garantir que os dados estejam acessíveis quando necessário, os programadores podem proteger seus aplicativos contra travamentos ou falhas.

NOTE: Deadlocks também podem ocorrer quando duas ou mais consultas são executadas em um banco de dados. Bancos de dados transacionais bloqueiam os registros ativos, impedindo que outras consultas os acessem. Se um processo não puder acessar um registro bloqueado, poderá ocorrer um deadlock de banco de dados.

Atualizado January 18, 2020 por Per C.

quizTeste seus conhecimentos

What was the last version of Windows to use Service Packs?

A
Windows XP
0%
B
Windows 7
0%
C
Windows 8
0%
D
Windows 10
0%
Correct! Incorrect!     View the Service Pack definition.
More Quizzes →

O dicionário de informática Tech Terms

A definição de Deadlock nesta página é uma definição original escrita pelos autores do TechTerms.com. Se você quiser fazer referência a esta página ou citar esta definição, use a barra de citação verde logo abaixo da definição.

Nosso objetivo é explicar a terminologia de informática de um jeito fácil de entender. Buscamos precisão e clareza em cada definição que publicamos. Se você tiver comentários sobre esta definição ou quiser sugerir um novo termo técnico, entre em contato.

A newsletter do Tech Terms

Amplie seus conhecimentos técnicos com nossa newsletter diária ou semanal! Assine hoje e receba novos termos e quizzes na sua caixa de entrada.

Assine a newsletter gratuita do TechTerms

Com que frequência você gostaria de receber um e-mail?

Você pode cancelar a assinatura ou alterar a frequência a qualquer momento usando os links disponíveis em cada e-mail. Dúvidas? Entre em contato.

Observação: a newsletter é enviada em inglês.