Considerando as principais armadilhas do tratamento de sincronização de threads, o que ocorre quando a thread1 espera pelo desbloqueio de um mutex que estava bloqueado pela thread2, mas a thread2 finalizou seu processamento sem efetuar a liberação do mutex?


O processo pai deve detectar a situação e desbloquear o mutex em questão.


O sistema operacional cuida de automaticamente de desbloquear mutexes quando a thread que o bloqueava finaliza.


O programa irá ser finalizado pelo sistema operacional com uma mensagem "falha de desbloqueio".


O thread1 deve chamar a função join, usada para desbloquear de forma forçada a mutex necessária


Não há como contornar a questão sem ajustes no código-fonte, pois somente a thread2 poderia realizar o desbloqueio.
Please enter comments
Please enter your name.
Please enter the correct email address.
You must agree before submitting.

Lista de comentários


Helpful Social

Copyright © 2024 ELIBRARY.TIPS - All rights reserved.