Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нити и доступ к общим данным 
:(
    Опции темы
Foror
Дата 17.5.2003, 10:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня есть массив из 23 структур, к элементам этого массива должны иметь доступ одновременно 23 потока. Так вот такое можно реализовать(т.е. ни каких глюков не будет)? Также мне необходимо создать шаблонную ф-ию, в которой будут обрабатываться данные элементы, но к этой ф-ии также должны иметь доступ одновременно все те 23 потока. В общем как это все сделать? Если не сложно покажите пример или ссылку где это можно почитать.
  Вверх
Unregistered
Дата 17.5.2003, 10:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кста вот задание(если выше что-то не совсем ясно):

/*
Разработать программную модель парикмахерской, имеющей три кресла, три
парикмахера и зал, в котором до четырех клиентов может поместиться на диване, а
остальные - стоя, проичем правила ограничивают общее число клиентов внутри помещения
значением 20.
Клиент не может войти в парикмахерскую, если она полностью заполнена другими
клиентами. Оказавшись внутри, клиент либо присаживается на диван, либо стоит, если все
места на диване заняты. Когда какой-то из парикмахеров освобождается, к нему направляется
наиболее долго ожидавший клиент с дивана. Если имеются стоящие клиенты, то тот из них, кто
ожидает дольше других, присаживается на диван. По окончанию стрижки клиент берет счет от
парикмахера и оплачивает стрижку в кассе, которая может одновременно обслуживать только
одного клиента. После оплаты счет возвращается парикмахеру, который до этих пор ожидает,
отдыхая. Каждый парикмахер может находиться в состоянии работы, ожидания оплаты и
дремоты в своем кресле в ожидании очередного клиента.
Построить программную модель в Windows как многопоточную с синхронихацией
семафорами. Длительность этапов функционирования отдельного моделируемого объекта -
клиента, парикмахера, кассира - задавать генератором случайных чисел (функцией рандом или
подобной ей). Поведение модели должно отображаться на экране в текстовом режиме с
помощью текстов и символов по усмотрению разработчика.
*/

  Вверх
man2002ua
Дата 17.5.2003, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



Во-первых, ограничиваемся только 3 потоками - каждый поток, это парикмахер.
Стоячие места в помещении - стек FIFO (очередь) на 20 элементов, сидячия - на 4 элемента.
Потоки (парикмахеры) - работают только с сидячим стеком smile.gif (прикольное название).

Идея ясна? Боюсь целиком реализовывать тебе этот алгоритм никто не будет, но на вопросы - пожалуйста.


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
DENNN
Дата 18.5.2003, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата
как многопоточную с синхронихацией
семафорами.

Это собственно ответ на вопрос, как сделать так чтоб ничего не глючило при одновременном доступе к данным из разных потоков. smile.gif
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.