Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pro100Ferrari
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 11
#1

Параллельная работа лифтов - C++

13.12.2013, 12:35. Просмотров 396. Ответов 6
Метки нет (Все метки)

Задача реализовать модель системы управления лифтами. Функция управления одним лифтом написана, выполняется корректно. Вопрос в том, как реализовать, чтобы эта функция выполнялась для 10 лифтов параллельно? Какие могут быть варианты реализации? Какие методы параллельной работы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 12:35     Параллельная работа лифтов
Посмотрите здесь:

Параллельная работа с документами - C++
Доброго всем помогите доработать код, нужно организовать параллельную работу с документами...Можно сам принцип изложить не так как у меня?...

Параллельная работа с файлами - C++
Помогите, есть такое задание: На компьютере существует папка с файлами. Файлов много, их имена заранее неизвестны, в каждом файле...

Параллельная работа двух потоков - C++
Добрый день ! Подскажите пожалуйста , как сделать так, что-бы один поток считывал строки, а другой считал буквы и слова ? ...

Параллельная обработка - C++
Добрый день! Подскажите, пожалуйста, как параллельно считать содержимое всех файлов из директории?

Параллельная прямая - C++
Надо по заданным A,B,C найти две прямые на расстоянии от заданной от R. Кто-нибудь парочку формул для нахождения не скинет?

Параллельная обработка файлов - C++
Не понимаю как организовать параллельную обработку файлов в данной программе. Смысл в том что есть папка в которой идут txt файлы, в этих...

Параллельная сортировка, протестировать алгоритм - C++
Надо протестировать масштабируемость работы алгоритма для параллельной сортировки, у кого более 2 процессорных ядер. На 2-х ядрах...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.12.2013, 12:42     Параллельная работа лифтов #2
Pro100Ferrari, используйте потоки и мьутексы.
Pro100Ferrari
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 11
13.12.2013, 12:52  [ТС]     Параллельная работа лифтов #3
А как тогда синхронизировать все это дело. У меня функция примерно следующего вида:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for()
     Находим что-то пусть А
        for(по А)
         что-то ищем пусть B 
              if(B == чему-то)
              {
                   что-то выполняем
                   if()
                   {
                          for()
                              что-то еще выполняем
                   } 
              }
              else
              {
                   что-то выполняем
                   if()
                   {
                          for()
                              что-то еще выполняем
                   }    
              }
Т. е. если у меня большая вложенность. В реальной проге около 10-12 приведенного типа. Плюс еще визуализация в StringGrid. Пробовал разные блоки кода ограничивать мьютексами, но работало не корректно.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.12.2013, 14:07     Параллельная работа лифтов #4
Цитата Сообщение от programina Посмотреть сообщение
Pro100Ferrari, используйте потоки и мьутексы.
Зачем здесь мутексы?

Добавлено через 17 секунд
Цитата Сообщение от Pro100Ferrari Посмотреть сообщение
А как тогда синхронизировать все это дело.
Зачем?
Pro100Ferrari
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 11
13.12.2013, 14:10  [ТС]     Параллельная работа лифтов #5
Если не использовать потоки, то как обеспечить параллельную работу? Синхронизация, чтобы потоки не портили разделяемые данные.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.12.2013, 15:44     Параллельная работа лифтов #6
Цитата Сообщение от Pro100Ferrari Посмотреть сообщение
Если не использовать потоки, то как обеспечить параллельную работу?
Ни как. Для параллельной работы потоки обязательны, но не достаточны. Надо ещё иметь соответствующее количество ядер (с учётом того, что они могут быть и в разных процессорах, а одноядреный процессор многопроцессорной машины считается за одно ядро), а система должна поддерживать их одновременное использование одним процессом. Только зачем здесь истинный параллелизм? Кроме задач, с которыми одно ядро тупо не справляется, для всех остальных достаточно многопоточности, которая есть логический параллелизм в единицах времени, больших системного кванта времени.
Цитата Сообщение от Pro100Ferrari Посмотреть сообщение
Синхронизация, чтобы потоки не портили разделяемые данные.
А разве лифты обращаются к общим данным?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 17:32     Параллельная работа лифтов
Еще ссылки по теме:

Параллельная реализация алгоритма Дейкстры - C++
Здравствуйте. Вообщем, надо сделать алгоритм Дейкстры на MPI, но выполнятся он будет не на кластере, а на одном компе. (далее узел -...

Чтение строки неограниченной длины и её параллельная обработка - C++
Здравствуйте. В ходе реализации алгоритма для поиска возникла проблема в том, что в условии написано, что входная строка может быть сколь...

Параллельная работа потоков - C++ Qt
У меня есть 2 потока, один ГУИ, другой занимается обработкой поступающих в него данных. ГУИ поток не может никак заблокировать 2 поток,...

Параллельная работа нескольких циклов - Delphi
Привет всем! Очень нужна помощь! Разъясните, пожалуйста, каким образом можно реализовать выполнение нескольких циклов одновременно? В...

Параллельная работа нескольких процессов - Pascal
Здравствуйте. Требуется Ваша помощь в решении следующей проблемы: Имеется некоторое задание, состоящее из четырех частей. Каждая...


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

Или воспользуйтесь поиском по форуму:
Pro100Ferrari
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 11
13.12.2013, 17:32  [ТС]     Параллельная работа лифтов #7
Вобщем, я разобрался как все это сделать. Настоящего параллелизма нету конечно. Каждый поток т.е. лифт обращается к своей части массива, но были разделяемые переменные. Их я убрал из кода и заменил массивами, чтобы снова каждый лифт обращался к своей части массива. Параллелизм мне нужен был только ради визуального создания эффекта, что лифты одновременно, независимо функционируют. После замены переменных потребность в синхронизации отпала и все заработало нужным образом. Всем спасибо.
Yandex
Объявления
13.12.2013, 17:32     Параллельная работа лифтов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru