Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Полагаю, с концепцией потоков ты знаком? Тогда примерно так (псевдо код)
Код:
// 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-файлов.