Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163

Поясните за семафоры

18.04.2024, 15:57. Показов 1312. Ответов 20

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Нужно решить проблему. Суть:
Одна программа (декодер) разбирает поток сообщений и заполняет (транзакциями) базу данных (БД), при некотором таймауте изменения сохраняются в БД (commit), затем создается ее рабочая копия (РКБД).
Не нужно пока лезть в дебри почему так, а не иначе.
С РКБД работает другая программа (клиент) или даже несколько ее копий.
Проблема заключается в следующем, в принципе я могу по горячему переписать файл РКБД декодером, но мне нужно по-любому оповестить клиенты о необходимости обновления подключения (собственно данных), а еще лучше бы сначала оповестить клиенты, чтобы отключить их всех перед перезаписью от РКБД.
Ладно, в простом случае решается созданием файла в папке с РКБД, а клиент отслеживает это событие. НО черт возьми, если открыто модальное окно, клиент не реагирует на команды пока оно не закроется. В итоге нужно ждать действий оператора по закрытию мод.окна, а сколько ждать? Т.е. нужно событие...
Думал сделать отслеживание на семафоре, но сколько читал так и не понял, как получить событие, что ни одна программа сейчас не подключена к РКБД или хотя бы не находится в режиме модального окна?
у меня нет четкого значения сколько всего программ должно (может) быть подключено (ну скажем не более 10), а насколько я понял семафор кричит "свободная касса" (отслеживается Wait...Object) не когда у него полная очередь (он в нуле ибо любой подключившийся уменьшает лимит), а наоборот, когда у него все лимиты свободны...
Мне нужно получить событие в декодере, что все клиенты закрыли окна или вообще отключились от БД (покинули семафор).
Может кто-то на простом примере показать, как это провернуть?
И да, еще один вопрос, программа свалившаяся "крашем" освобождает семафор?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2024, 15:57
Ответы с готовыми решениями:

Семафоры мои семафоры
Задача: есть программы Administrator и Writer. Нужно реализовать условие "Одновременно принимать и отправлять сообщения может только два...

Семафоры
#include <iostream> #include <windows.h> #include <tchar.h> using namespace std; HANDLE ghSemaphore; DWORD WINAPI...

Семафоры
Здравствуйте. Как можно организовать синхронизацию двух программ, которые обращаются к одной разделяемой памяти с помощью семафоров. Мне...

20
фрилансер
 Аватар для Алексей1153
6495 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,284
19.04.2024, 18:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от POJIBOX Посмотреть сообщение
Но... Но... Но...
если сделать
Цитата Сообщение от Алексей1153 Посмотреть сообщение
с БД должен работать напрямую только сервер, а клиенты - через сервер.
то всё получится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2024, 18:57

Семафоры
Есть код пишет в память 12121212 и записывает в файл. Что нужно поменять, чтобы записывалось, например, 21212121? #include...

Семафоры
Можете подсказать ,что делает строчка if(sem_init(mstoo(мой собственный семафор),0,1)!=0){cout<<"ошибка";}

Семафоры
Изначально нужно было написать программу, в которой два потока: дочерний и главный вычисляют сумму от i до N. N суммы и вывод результата...

Семафоры
Здравствуйте Задача: разработать комплекс программ, который демонстрирует решения по-дачи «читатели-писатели». В комплекс должны входить:...

Семафоры
Здравствуйте. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/ipc.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru