Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Single-producer/multi-consumer queues
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОбработка ошибок в такой очереди будет весьма крепким орешком, однако... Там тривиальная задача с набором из 2 семафоров. Single-producer устанавливает значение входяжего семафора на нужное количество consumer -ов , те ломятся в кадр , а Single-producer засыпает на выходящем семафоре. Закончив работу consumer -ы сбрасыают исходящий семафор и засыпают на входящем. Single-producer меняет указатель на следующий кадр и снова запускает consumer -ов И так по кругу. ТС-у нужно изучить принципы работы семафоров. Если Single-producer Single-consumer то достаточно одного семафора, если их разное количество то нужен набор из 2 семафоров. Я не знаю как в винде обстоят дела с атомарностью работы с набором семафоров , возможно для защиты набора от рассогласования придется их защищать мутексом . В Юниксе работа с набором семафоров атомарна из коробки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 00:46 |
|
||
|
Single-producer/multi-consumer queues
|
|||
|---|---|---|---|
|
#18+
Формально это задача по созданию мутекса, который может преобразовываться из эксклюзивного в разделяемый. Читатели могут пользоваться ресурсом одновременно , а писатели только в одиночку. Если такой примитив сихронизации где то уже реализован , то можно воспользоваться им. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 01:20 |
|
||
|
Single-producer/multi-consumer queues
|
|||
|---|---|---|---|
|
#18+
ДохтаРSingle-producer устанавливает значение входяжего семафора на нужное количество consumer -ов , те ломятся в кадр , а Single-producer засыпает на выходящем семафоре. Закончив работу consumer -ы сбрасыают исходящий семафор и засыпают на входящем. Single-producer меняет указатель на следующий кадр и снова запускает consumer -ов И так по кругу. И вот тут-то возникает вопрос: что делать если у пятого из десяти consumer-ов в ходе работы произошла ошибка? Прервать всю работу и оповестить остальных, что последний обработанный ими кадр нужно дропнуть? Или пропустить кадр только этим consumer-ом и получить несогласованные потоки на выходе? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 11:08 |
|
||
|
Single-producer/multi-consumer queues
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДохтаРSingle-producer устанавливает значение входяжего семафора на нужное количество consumer -ов , те ломятся в кадр , а Single-producer засыпает на выходящем семафоре. Закончив работу consumer -ы сбрасыают исходящий семафор и засыпают на входящем. Single-producer меняет указатель на следующий кадр и снова запускает consumer -ов И так по кругу. И вот тут-то возникает вопрос: что делать если у пятого из десяти consumer-ов в ходе работы произошла ошибка? Прервать всю работу и оповестить остальных, что последний обработанный ими кадр нужно дропнуть? Или пропустить кадр только этим consumer-ом и получить несогласованные потоки на выходе? Можно создать битовый массив при каждом кадре пусть каждый consumer зводит свой бит если все ОК, а потом сравнивать его с 0xFF....FF маской. Если битовый масив маске не соотвествует значит кто то из consumer -ов зафейлился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 18:29 |
|
||
|
Single-producer/multi-consumer queues
|
|||
|---|---|---|---|
|
#18+
ДохтаРЕсли битовый масив маске не соотвествует значит кто то из consumer -ов зафейлился. "А дальше?.." (с) ПВ Обнаружить факт ошибки - просто. Но лично мне в аналогичной задаче пока не удалось придумать приемлемую схему реакции на ошибку. Проблема становится ещё хуже, если очередь удлинить, позволяя тормозному продюсеру готовить следующую порцию данных в то время как консюмеры обрабатывают предыдущие. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 18:52 |
|
||
|
Single-producer/multi-consumer queues
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДохтаРЕсли битовый масив маске не соотвествует значит кто то из consumer -ов зафейлился. "А дальше?.." (с) ПВ Обнаружить факт ошибки - просто. Но лично мне в аналогичной задаче пока не удалось придумать приемлемую схему реакции на ошибку. Проблема становится ещё хуже, если очередь удлинить, позволяя тормозному продюсеру готовить следующую порцию данных в то время как консюмеры обрабатывают предыдущие. А дальше зависит от цели, которую преследует решение здачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2015, 19:45 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39034210&tid=2018871]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 281ms |
| total: | 414ms |

| 0 / 0 |
