Что такое тупик и условия гонки (C ++)?

Я получил интервью на стажировку для разработчиков, и они заставляют меня написать тест завтра (сегодня мне предложили интервью, так что это как бы короткое уведомление). Имейте в виду меня и мои вопросы, но я не занимался C ++ в течение примерно 4 месяцев, и мне пришлось учиться в течение двух промежуточных курсов, поэтому у меня не было большого количества времени, чтобы разобраться с этим самостоятельно.

По сути, мне интересно, что такое тупик и условия гонки в C ++, и каковы некоторые простые и промежуточные примеры этого.

Спасибо за вашу помощь! 🙂

0

Решение

Учебные руководства по Java есть хороший анекдот, который объясняет тупики:

«Тупик описывает ситуацию, когда два или более потоков заблокированы навсегда, ожидая друг друга. Вот пример. Альфонс и Гастон — друзья, и большие сторонники вежливости. Строгое правило вежливости таково, что когда вы кланяетесь другу, вы должен оставаться склоненным до тех пор, пока ваш друг не сможет вернуть лук. К сожалению, это правило не учитывает вероятность того, что два друга могут поклониться друг другу одновременно ».

И это ответ адреса условий гонки.

5

Другие решения

Если вы более конкретны на какой платформе, то мы можем привести более явные примеры. например если это Windows, то процесс становится многопоточным (например, CreateThread) и создайте сценарии, в которых каждый поток конкурирует за ресурсы, которые могут блокироваться (CreateEvent & WaitForSingleObject) также SendMessage,

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector