Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
1

Критическая секция (флаги готовности)

17.05.2017, 23:34. Показов 817. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть ли какие-нибудь примеры программ на С++ или C# (в крайнем случае на С) на алгоритм флаги готовности?
Я нашёл небольшой отрывок кода алгоритма флаги готовности, но я даже не знаю как его применять.
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
shared int ready[2] = {0, 0};
while (some condition)
{
ready[i] = 1;
while(ready[1-i]);
critical section
ready[i] = 0;
remainder section
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2017, 23:34
Ответы с готовыми решениями:

Критическая секция
Требуется применить критическую секцию для процессов через разделяемую память. Ниже привел участок...

Критическая секция
такая задача. есть глобальный указатель на структуру. в main -е динамически выделяю память под...

Критическая секция и семафоры
Посмотрите пожалуйста правильно ли я сделал программу. Нужно было написать программу, в которой при...

Не работает критическая секция
Почему-то значение переменной становится равно не нулю даже при наличии критических секций. Почему?...

2
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
18.05.2017, 11:22 2
Есть функции InterlockedExchange для того чтобы атомарно сравнить значение переменной и при необходимости задать новое.
Но в С++ начиная с С++11 есть множество средств для работы с многопоточностью. Например, шаблон класса std::atomic, std::condition_variable.
Выбор средств зависит от конкретной задачи. У вас нужно разово для каждого потока дождаться наступления определённого события или при наступлении события, вызывается какая-то функция, а флаг "сбрасывается"?
0
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 26
18.05.2017, 19:49  [ТС] 3
Первый случай
для каждого потока дождаться наступления определённого события
0
18.05.2017, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2017, 19:49
Помогаю со студенческими работами здесь

Критическая секция и внешний элемент
#include<iostream> #include<windows.h> using namespace std; struct zayavka { int num1;...

Не удается правильно синхронизировать потоки, критическая секция
доброго времени суток. необходимо синхронизировать n = 2,4,8,16 потоков чтения записи...

Можно ли узнать, когда критическая секция будет захвачена?
Здравствуйте. Желаемый алгоритм: 1. Подождать, пока поток попытается захватить (или же...

Критическая секция
Есть процесс в нем создается 2 потока, проблема в том, что когда один из потоков находится в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru