powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / AutoResetEvent vs Monitor
14 сообщений из 89, страница 4 из 4
AutoResetEvent vs Monitor
    #39668978
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosХвост!!!!!
Я показал 10 строк кода! Какой еще огород!!!

ну огород с локами, я просто всегда думаю в контексте разработки, в которой участвует много людей, и с учётом того, что люди приходят/уходят, поэтому, да, огород :)

а также скорее всего, получится организовать конвеер с очередью.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39668979
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosИ тут это самое главное - запустить параллельно те процессы, которые не претендуют на одни и те же ресурсы.
Эти 5-10 строк кода полностью решают данную задачу.

ну ок :) для обсуждения нужна была бы понятная, пусть упрощённая, но полная задача.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39668982
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttа также скорее всего, получится организовать конвеер с очередью.
с конвеером есть проблемы - не все процессы идут прямоточно
есть процессы со сроками хранения продукции, с гарантийными сроками и т.д. и часто не укладываешься в эти сроки
их приходится вернуть в очередь, вся цепочка уничтожается и идет перепланировка
скорее всего можно что то придумать - в следующий раз переведу все в DataFlow (если доживу)
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39668986
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosИ тут это самое главное - запустить параллельно те процессы, которые не претендуют на одни и те же ресурсы.
Эти 5-10 строк кода полностью решают данную задачу.

ну ок :) для обсуждения нужна была бы понятная, пусть упрощённая, но полная задача.
задача полная m работ n ресурсов …. - в постановка теории расписаний - т.е. самая упрощенная модель
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669043
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
rx не вижу для него.
У rx основа события извне. Причем асинхронные.
А у него обсчёт вариантов.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669103
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosDima Tпропущено...

Я про lock (algroup). Эвенты ждутся после этого лока, а мониторы внутри.
выделил нужные строкипропущено...

Про блокировку AutoResetEvent.WaitAll() ничего не нашел, в хэлпе только про WaitOne()

Ну все правильно
==> foreach (var e in monitorEventsObjects) Monitor.Enter(e);
установили блокировку (только не для себя, мы не ждем эти события - мы их для других поставили)

тут тоже для себя зеленая дорога (сигнал установлен в конструкторе), а после WaitAll двери захлопываются
Я просил код где максимальная нагрузка, а ты старт-стоп показал, самое важное вырезал. Не хочешь обсуждать - твое право, но зачем так тролить? Удачи.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669186
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЯ просил код где максимальная нагрузка, а ты старт-стоп показал, самое важное вырезал. Не хочешь обсуждать - твое право, но зачем так тролить? Удачи.
Да там обычный код вычислительный (создается множество производственных процессов для производственных структур, которые заблокированы как раз этими строчками и выбирается лучший процесс по заданному критерию при заданных ограничениях), ничего особенного (но объемом в несколько тыщ строк). Код этот очень быстрый и не требует оптимизации. Раньше однопоточная версию устраивала, так как процессов таких надо было выбрать 2-5 миллиона из 10-20. Теперь цифры выросли на порядок и мне надо как то все это вертикально масштабировать, потому решил и этот код распараллелить.
А распараллеливание этого кода не всегда может быть эффективен. Допустим, если производственных мощностей мало и они универсальны, то все техпроцессы будут выполняться на любом из них (или все рабочие универсальны), тогда по любе алгоритм все процессы поставить в очередь это как многозадачность в однопроцессорной машине без IO). Тут распараллеливание только мешает.
Потому самая сложная задача ФОРМИРОВАНИЕ этой очереди (фронта работ) для алгоритма планирования. Это похоже на выталкивание по приоритетам (которые вычисляются в зависимости от производственных структур, структуры работ и т.д. много параметров.
Если коротко, то делается вот что.
1. Кто то разузловывает изделие/проект... (которые в производственных заказах специфированы), находить терминальные ДСЕ, выбирает все альтернативные ТП и из их терминальных (начальных) операций формирует очередь процессов (ТП)
2. Кто то анализирует эту очередь на совместимость по многим политикам
- переналадки (упорядочение для минимизации)
- динамические сборы (печи, гальваника, транспорт,...покраска сушка - совместная обработка)
- технологические сборы (совместная обработка сопрягаемых поверхностей)
--
и выкидывает в фронт работ (оттуда можно их брать для планирования - где будем делать, кто будет, на чем будет, когда будет,... куча ограничений)
3. Кто то эти работы параллельно (раньше был один поток и он успевал) планирует и если что то не так все начинается с п.2
4. После того как какое то изделие/заказ/проект/…. окончательно запланирован идет параллельно запись.

Вот вся задача ооооочень коротоко.
Мы обсуждали часть п.3., которую я переделал недавно.

И я никого не троллил, а просто спросил кое что.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669315
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Интересно, а человек в этом алгоритме участвует? Может он внести изменения в процессе, или только на конечном или начальном этапах?
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669415
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRos,

Интересно, а человек в этом алгоритме участвует? Может он внести изменения в процессе, или только на конечном или начальном этапах?

Человек управляет алгоритмом через политики, ограничения и параметры процессов.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669555
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

То есть только на начальном этапе. Поправить "в середине" нельзя? Или исправить результат? Я понимаю, что это возможно вообще не требуется.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669581
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRos,

То есть только на начальном этапе. Поправить "в середине" нельзя? Или исправить результат? Я понимаю, что это возможно вообще не требуется.

Хвост! Там миллионы процессов генерируются (да хоть сотни), что ты там хочешь в интерактиве делать?
Поправить всегда можно, после расчетов видны состояние заказов, указаны заказы с нарушениями директивных сроков и т.д.
Если что то не устраивает, то можешь менять политики, ограничения, параметры и запустить перерасчет.
А так делается по такой схеме.
1. Получили расписание.
2. Работаем и вводим факт.
3. На мониторе диспетчеров видны отклонения.
Когда отклонения не влезают ни в какие ворота (что решает диспетчер или программа по заданным политикам - допустим отклонение в сутки - перерасчет автоматически) инициируется перерасчет.
Перерасчет начинается локально (сначала внутри вышестоящего контекста - для РМ это допустим Участок, для Участка - Пролет, Цех и т.д.) и если можно отклонения компенсировать (т.е. планы других структурных элементов не затрагиваются), то перерасчет заканчивается) и идет эскалация до полной компенсации отклонений. В худшем случае (обычно когда выбраны неадекватные политики - допустим JIT) пересчитывается все расписание.
Потому очень важна скорость расчетов.
А так диспетчер может вручную переставить палки по своему усмотрению (основной режим работы всяких херовых ЕРП) - но я бы дал ему по башке за это.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669588
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После первого расчета расписания получаются так называемые реперные точки (В ВИП.Производстве они называются "Устойчивые к перезапуску процессы". Если при перерасчете эти реперные точки смещены, то по идее я должен оповестить вышестоящие органы - владельцев этих процессов, но пока я это не сделал - нафиг никому ничего не надо.
Это точки обычно - моменты отгрузки покупателю, моменты пополнения запасов (закупки, кооперация,...,), финансовые операции и т.д. вещи связанные с внешней логистикой.
В принципе в серийном и массовом производстве после перерасчета расписание должна удалиться автоматически, оставив только реперные точки.
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669652
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosКогда отклонения не влезают ни в какие ворота (что решает диспетчер или программа по заданным политикам - допустим отклонение в сутки - перерасчет автоматически) инициируется перерасчет.

Ну отклонения понятно, а переносы? По времени, или использование освободившихся ресурсов. Такое.


ViPRosА так диспетчер может вручную переставить палки по своему усмотрению (основной режим работы всяких херовых ЕРП) - но я бы дал ему по башке за это.

Я же не знаю, какие у вас регламенты. Часто самые умные и отлаженные процессы не всегда работают в контексте "данного случая".

В целом понятно.


ViPRosЕсли при перерасчете эти реперные точки смещены, то по идее я должен оповестить вышестоящие органы - владельцев этих процессов, но пока я это не сделал - нафиг никому ничего не надо.

А этот момент управляется только разработчиком?
...
Рейтинг: 0 / 0
AutoResetEvent vs Monitor
    #39669657
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosЕсли при перерасчете эти реперные точки смещены, то по идее я должен оповестить вышестоящие органы - владельцев этих процессов, но пока я это не сделал - нафиг никому ничего не надо.

А этот момент управляется только разработчиком?

Все что я пишу - мое. От А до Я.
...
Рейтинг: 0 / 0
14 сообщений из 89, страница 4 из 4
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / AutoResetEvent vs Monitor
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]