С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
41 / 22 / 12
Регистрация: 07.12.2011
Сообщений: 114

Критическая секция

05.11.2012, 19:57. Показов 2122. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
такая задача.

есть глобальный указатель на структуру. в main -е динамически выделяю память под массив структур. Хочу чтобы у каждой ячейки массива была своя критическая секция. Что делать? уже дофига прогуглил, пишут общие слова, ничего не понимаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2012, 19:57
Ответы с готовыми решениями:

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

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

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

5
 Аватар для _lucius_
391 / 179 / 2
Регистрация: 14.03.2012
Сообщений: 443
05.11.2012, 20:17
А в чём проблема то? Есть у вас допустим массив из пяти элементов. Дак создайте тогда массив из пяти структур CRITICAL_SECTION. Перед тем как ваш код собирается модифицировать ячейку занимайте крит. секцию, а после освобождайте.
0
41 / 22 / 12
Регистрация: 07.12.2011
Сообщений: 114
05.11.2012, 20:21  [ТС]
так, я новичок)
у меня
Zayavka *mas; глобальный указатель.
критическую секцию тоже надо объявить глобально, тоесть так же пишу:
CRITICAL_SECTION *cs; ???


в маине:
C++
1
2
3
4
5
6
cout<<"Vvedite kol-va zayavok: ";
cin>>kolZay;
 if(kolZay>0)
 {
     Zayavka *mas = new Zayavka[kolZay];
 }
теперь есть массив структур, но как быть с критической секцией, точно так же?
и я просто не пойму еще одно, как моя критическая секция поймет что ей надо охранять(
0
 Аватар для _lucius_
391 / 179 / 2
Регистрация: 14.03.2012
Сообщений: 443
05.11.2012, 20:43
Цитата Сообщение от pavlovnik Посмотреть сообщение
так, я новичок)
Цитата Сообщение от pavlovnik Посмотреть сообщение
уже дофига прогуглил, пишут общие слова, ничего не понимаю
Рихтера почитайте. Там доходчиво расписано.
Цитата Сообщение от pavlovnik Посмотреть сообщение
как моя критическая секция поймет что ей надо охранять
Ей не надо ничего понимать. По одной структуре на элемент массива закрепите. Ну вот создали вы секцию (InitializeCriticalSection). Далее перед модификацией занимаете её (EnterCriticalSection), после освобождаете (LeaveCriticalSection). Если поток вызовет EnterCriticalSection а секция ещё занята, тогда он будет ожидать. Главное чтобы для каждого элемента массива по одной структуре.
0
41 / 22 / 12
Регистрация: 07.12.2011
Сообщений: 114
05.11.2012, 20:51  [ТС]
Цитата Сообщение от _lucius_ Посмотреть сообщение
По одной структуре на элемент массива закрепите

вот в этом и вопрос, как?



и можно ли использовать TryEnterCriticalSection() и если false то прибавляя счетчик переходить к следующей структуре?
0
 Аватар для _lucius_
391 / 179 / 2
Регистрация: 14.03.2012
Сообщений: 443
05.11.2012, 20:54
Цитата Сообщение от pavlovnik Посмотреть сообщение
и можно ли использовать TryEnterCriticalSection() и если false то прибавляя счетчик переходить к следующей структуре?
Конечно можно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2012, 20:54
Помогаю со студенческими работами здесь

Критическая секция (флаги готовности)
Есть ли какие-нибудь примеры программ на С++ или C# (в крайнем случае на С) на алгоритм флаги готовности? Я нашёл небольшой отрывок кода...

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

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

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

Что за секция LBMPEG_D
Програмно работаю с файлом игры(запускаю из памяти, приложения запускаются а вот с экзешником игры постоянный некоррект), встретил затык с...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru