Състояние на мъртва хватка

Състояние на мъртва хватка (Термин на Английски език: Deadlock) това състояние възниква, когато се използва мутекс и той не се освободи члез отключване и остане заключен.

Това води до спиране на изпълнението на програмата за неопределено време. То може да бъде причинено и от недобре написано application или joins.

Бъдете внимателни, когато прилагате два или повече мутекса в една част от кода. Ако първият pthread_mutex_lock е приложен и вторият pthread_mutex_lock не успее поради прилагането на друга нишка на мутекс, първият мутекс може в крайна сметка да блокира всички други нишки от достъп до данни, включително нишката, която държи втория мутекс.

Нишките могат да чакат неограничено време ресурсът да се освободи, което води до задънена улица. Най-добре е да се тества и ако се появи неуспех, да се освободят ресурсите и да се спре, преди да се опита отново.

Last updated