Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

6
programina
1916 / 601 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.12.2013, 12:42 #2
Pro100Ferrari, используйте потоки и мьутексы.
0
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. Пробовал разные блоки кода ограничивать мьютексами, но работало не корректно.
0
taras atavin
3571 / 1755 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
13.12.2013, 14:07 #4
Цитата Сообщение от programina Посмотреть сообщение
Pro100Ferrari, используйте потоки и мьутексы.
Зачем здесь мутексы?

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

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

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

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

Параллельная программа для метода холецкого с помощью openMp и mpi - C++
Товарищи,помогите пожалуйста с параллельным программированием: надо написать параллельную программу для метода холецкого с помощью openMp...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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