Организация очередей при параллельных циклах
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Организация очередей при параллельных циклах
Добрый день. Вопрос про структуру кода и передачу данных. Имеется 5 параллельных циклов: обработка пользовательских событий, UI, приём данных с аппаратуры, передача по сети и запись в файл. Для инициализации модулей нужно передавать данные из 2 цикла в 3 цикл, для передачи и записи из 3 в 4 и 5 соответственно. Для этого нужно класть в соответствующую очередь событие + необходимые данные. Отсюда вопрос - является ли нормальным паттерном вызов из любого цикла события для любой другой очереди, или есть какое-то более изящное решение и контроль всех очередей в одном цикле? Спасибо.
-
- developer
- Сообщения: 286
- Зарегистрирован: 26 фев 2016, 06:31
- Версия LabVIEW: 18-20
- Благодарил (а): 6 раз
- Поблагодарили: 5 раз
- Контактная информация:
Re: Организация очередей при параллельных циклах
есть библиотека Tasking2. Тут на форуме можно скачать где-то. Мне понравилась - там все основные механизмы взаимодействия для начала есть. Есть тема с проектом на ее основе: viewtopic.php?p=71086#p71086.
Конечно все зависит от масштаба проекта. Можно для небольшого проекта посмотреть на JKI State Machine - тоже удобная штука.
Конечно все зависит от масштаба проекта. Можно для небольшого проекта посмотреть на JKI State Machine - тоже удобная штука.
- jane_wild
- master
- Сообщения: 433
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 75 раз
- Поблагодарили: 7 раз
- Контактная информация:
Re: Организация очередей при параллельных циклах
Actor Framework вот тема, она мне достаточно сильно помогла, ей правда уже лет 8, но приципы то не изменились. Так вот там taras_33 пытался на примерах рассказать что это такое.
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Организация очередей при параллельных циклах
Спасибо, изучу, надеюсь не сильно долго будет переходить на эту модель, если там всё более структурировано, нежели при очередях
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: Организация очередей при параллельных циклах
Ну Акторы - это надстройка надстройка над очередями, так что структурированность зависит от программиста, а не от шаблонаSergey Puzanov писал(а): ↑24 май 2023, 14:20 Спасибо, изучу, надеюсь не сильно долго будет переходить на эту модель, если там всё более структурировано, нежели при очередях

А в целом разумно делать так чтобы разные части проекта как можно меньше знали друг о друге.
Но это в идеальном и большом проекте с прицелом на изменения.
Например, цикл чтения с оборудования не должен знать кто, что и как пишет в какой-то файл. Его задача считать значения и отправить дальше. В обратную сторону так же.
В этом случае каждый участок проекта можно относительно просто модифицировать (например, изменив тип оборудования), без поиска зависимостей по всему коду.
Но всегда стоит вопрос сроков, масштабов проекта и задач.
Что по мне, так акторы - не самая разумная идея для начала изучения


-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Организация очередей при параллельных циклах
Вот в этом собственно и вопрос - если я положу собранные данные в очередь, отвечающую за запись, и в очередь, отвечающую за отправку, а если по простому - проведу провода этих самых очередей в цикл сбора, не является ли это антипаттерном? С одной стороны, он не будет знать, "кто и что пишет", с другой будет знать, "куда" передать. Вроде звучит логично, просто хочу убедиться, правильно ли делаю.
Хочется верить,что после 3 лет работы уже не совсем начало изучения идёт, но с каждым вопросом на форуме всё больше становиться понятно, что есть куда стремиться.
-
ladik
- developer
- Сообщения: 265
- Зарегистрирован: 18 ноя 2014, 11:45
- Награды: 1
- Версия LabVIEW: 2015, 2019
- Откуда: Екатеринбург
- Благодарил (а): 2 раза
- Поблагодарили: 2 раза
- Контактная информация:
Re: Организация очередей при параллельных циклах
Посмотрите ещё в сторону Workers. Попроще чем Акторы в освоении, но тоже весьма удобная штуковина.
Дорогу осилит идущий.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение