| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Нити и доступ к общим данным |
| Автор: Foror 17.5.2003, 10:00 |
| У меня есть массив из 23 структур, к элементам этого массива должны иметь доступ одновременно 23 потока. Так вот такое можно реализовать(т.е. ни каких глюков не будет)? Также мне необходимо создать шаблонную ф-ию, в которой будут обрабатываться данные элементы, но к этой ф-ии также должны иметь доступ одновременно все те 23 потока. В общем как это все сделать? Если не сложно покажите пример или ссылку где это можно почитать. |
| Автор: Unregistered 17.5.2003, 10:02 |
| Кста вот задание(если выше что-то не совсем ясно): /* Разработать программную модель парикмахерской, имеющей три кресла, три парикмахера и зал, в котором до четырех клиентов может поместиться на диване, а остальные - стоя, проичем правила ограничивают общее число клиентов внутри помещения значением 20. Клиент не может войти в парикмахерскую, если она полностью заполнена другими клиентами. Оказавшись внутри, клиент либо присаживается на диван, либо стоит, если все места на диване заняты. Когда какой-то из парикмахеров освобождается, к нему направляется наиболее долго ожидавший клиент с дивана. Если имеются стоящие клиенты, то тот из них, кто ожидает дольше других, присаживается на диван. По окончанию стрижки клиент берет счет от парикмахера и оплачивает стрижку в кассе, которая может одновременно обслуживать только одного клиента. После оплаты счет возвращается парикмахеру, который до этих пор ожидает, отдыхая. Каждый парикмахер может находиться в состоянии работы, ожидания оплаты и дремоты в своем кресле в ожидании очередного клиента. Построить программную модель в Windows как многопоточную с синхронихацией семафорами. Длительность этапов функционирования отдельного моделируемого объекта - клиента, парикмахера, кассира - задавать генератором случайных чисел (функцией рандом или подобной ей). Поведение модели должно отображаться на экране в текстовом режиме с помощью текстов и символов по усмотрению разработчика. */ |
| Автор: man2002ua 17.5.2003, 11:45 |
| Во-первых, ограничиваемся только 3 потоками - каждый поток, это парикмахер. Стоячие места в помещении - стек FIFO (очередь) на 20 элементов, сидячия - на 4 элемента. Потоки (парикмахеры) - работают только с сидячим стеком Идея ясна? Боюсь целиком реализовывать тебе этот алгоритм никто не будет, но на вопросы - пожалуйста. |
| Автор: DENNN 18.5.2003, 14:29 | ||
Это собственно ответ на вопрос, как сделать так чтоб ничего не глючило при одновременном доступе к данным из разных потоков. |