![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Foror |
|
|||
|
Unregistered |
У меня есть массив из 23 структур, к элементам этого массива должны иметь доступ одновременно 23 потока. Так вот такое можно реализовать(т.е. ни каких глюков не будет)? Также мне необходимо создать шаблонную ф-ию, в которой будут обрабатываться данные элементы, но к этой ф-ии также должны иметь доступ одновременно все те 23 потока. В общем как это все сделать? Если не сложно покажите пример или ссылку где это можно почитать.
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Кста вот задание(если выше что-то не совсем ясно):
/* Разработать программную модель парикмахерской, имеющей три кресла, три парикмахера и зал, в котором до четырех клиентов может поместиться на диване, а остальные - стоя, проичем правила ограничивают общее число клиентов внутри помещения значением 20. Клиент не может войти в парикмахерскую, если она полностью заполнена другими клиентами. Оказавшись внутри, клиент либо присаживается на диван, либо стоит, если все места на диване заняты. Когда какой-то из парикмахеров освобождается, к нему направляется наиболее долго ожидавший клиент с дивана. Если имеются стоящие клиенты, то тот из них, кто ожидает дольше других, присаживается на диван. По окончанию стрижки клиент берет счет от парикмахера и оплачивает стрижку в кассе, которая может одновременно обслуживать только одного клиента. После оплаты счет возвращается парикмахеру, который до этих пор ожидает, отдыхая. Каждый парикмахер может находиться в состоянии работы, ожидания оплаты и дремоты в своем кресле в ожидании очередного клиента. Построить программную модель в Windows как многопоточную с синхронихацией семафорами. Длительность этапов функционирования отдельного моделируемого объекта - клиента, парикмахера, кассира - задавать генератором случайных чисел (функцией рандом или подобной ей). Поведение модели должно отображаться на экране в текстовом режиме с помощью текстов и символов по усмотрению разработчика. */ |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Во-первых, ограничиваемся только 3 потоками - каждый поток, это парикмахер.
Стоячие места в помещении - стек FIFO (очередь) на 20 элементов, сидячия - на 4 элемента. Потоки (парикмахеры) - работают только с сидячим стеком Идея ясна? Боюсь целиком реализовывать тебе этот алгоритм никто не будет, но на вопросы - пожалуйста. -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Это собственно ответ на вопрос, как сделать так чтоб ничего не глючило при одновременном доступе к данным из разных потоков. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |