Что, если мы продолжим вызывать semGive несколько раз без semTake в двоичном семафоре? Каким будет поведение? ⇐ C++
-
Гость
Что, если мы продолжим вызывать semGive несколько раз без semTake в двоичном семафоре? Каким будет поведение?
Мы создали двоичный семафор с помощью semBcreate.
Фрагменты кода:
semTake(с ожиданием 10 секунд); // он будет вызван только один раз во время перезапуска семДайв(); //это будет вызвано из нескольких потоков. Итак, здесь у нас будет много вызовов semGive() без semTake(). Поскольку он был вызван только один раз при перезагрузке устройства для синхронизации.
Пожалуйста, помогите мне ответить на этот вопрос, мы не видим никаких проблем, но что, если устройство будет работать долгое время и в двоичном семафоре будет вызываться множество semGive?
Мы много раз пытались вызвать semGive, но не заметили никаких потенциальных проблем. Но нам нужно понять, есть ли у этого способа какие-либо минусы.
Мы создали двоичный семафор с помощью semBcreate.
Фрагменты кода:
semTake(с ожиданием 10 секунд); // он будет вызван только один раз во время перезапуска семДайв(); //это будет вызвано из нескольких потоков. Итак, здесь у нас будет много вызовов semGive() без semTake(). Поскольку он был вызван только один раз при перезагрузке устройства для синхронизации.
Пожалуйста, помогите мне ответить на этот вопрос, мы не видим никаких проблем, но что, если устройство будет работать долгое время и в двоичном семафоре будет вызываться множество semGive?
Мы много раз пытались вызвать semGive, но не заметили никаких потенциальных проблем. Но нам нужно понять, есть ли у этого способа какие-либо минусы.
Мобильная версия