Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
ОБСУЖДЕНИЕ
Deadlock
1 ответов
4,7 тыс.
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Полагаю, с концепцией потоков ты знаком? Тогда примерно так (псевдо код)
Код:
// 2 объекта А, В, с эксклюзивным доступом
Mutex mtxA;
int nA=0;
Mutex mtxB;
int nB=0;
int threadA(...)
{
....
LockMutex(mtxA);
nA++;
...
LockMutex(mtxB); (**)
nB += nA;
UnlockMutex(mtxB);
UnlockMutex(mtxA);
...
}
int threadB(...)
{
LockMutex(mtxB);
// use nB;
..
LockMutex(mtxA); (**)
// use nB and nA
UnlockMutex(mtxА);
UnlockMutex(mtxB);
}
А смысл такой: 2 потока пользуются несколькими ресурсами в несовпадающем порядке. Если при этом требуется эксклюзивный доступ к этим ресурсам, то возможна ситуация, когда поток 1 блокирует объект А, и ждет доступа к объекту В. Объект В, в свою очередь, заблокирован потоком 2. Теперь ни один поток не может работать дальше, так как поток 1 ждет освобождения В, а он не освободится, пока не будет свободен объект А. И оба потока стоят в точке обозначенной (**)
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь. Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.