У кого-либо есть мысли об использовании Шаблона Доски таким образом?

Browsershots является другой опцией, если Вы просто хотите получить снимки экрана..

10
задан maple_shaft 18 September 2012 в 13:51
поделиться

1 ответ

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

По мере того, как фразы превращаются в предложения, могут быть сделаны даже более широкие просмотры, и могут быть разрешены различные варианты омофонов (пара, пара). Все это достигается за счет того, что доска открыта для всех процессов, а «блокировки» применяются только по мере поступления различных результатов.

Использование базы данных в качестве доски имеет определенный смысл, потому что вы получаете транзакции «бесплатно», но это будет зависеть от того, насколько активно данные обновляются и перечитываются. Если это происходит очень быстро, круговые обходы будут суммироваться и сделать структуру в памяти более разумной.

Ваша идея посредника имеет смысл, поскольку он создает единую точку блокировки ... и алгоритмы классной доски редко сталкиваются с A-> В стиле B, B-> A происходит взаимоблокировка, потому что они запрашивают все элементы данных заранее. Кроме того, отказ от блокировки не является большим штрафом, поскольку различные подзадачи будут перезапускаться все время по мере поступления данных. Подписчики на доску должны будут быть уведомлены, когда данные, которые они имеют, устарели, что можно сделать с помощью обратных вызовов, которые перезапустили бы задачу с новейшими данными.

Что касается комментария о рабочем процессе: основное отличие здесь в том, что большинство рабочих процессов координируются главным процессом, который принимает только что введенное состояние и выполняет решения о том, какие состояния становятся доступными для перемещения данных. Хотя могут быть и независимые участники, они редко участвуют в «превосходстве» друг друга, создавая лучшие результаты (которые затем будут использоваться другими задачами). Другими словами, рабочий процесс обычно представляет собой очень ограниченный набор состояний, через которые проходят данные, в то время как классная доска - это практически неограниченная независимая деятельность. (Тем не менее, за вашим рабочим процессом может стоять доска: http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-247/FORUM_15.pdf )

I не могу вспомнить ни одного примера C # шаблона, который я видел, и тип работы, который я выполняю, не требует особого внимания (вычисления детерминированы). Выполнив несколько поисков, вы найдете ссылки на других языках, но ни одна из них не окажется качественной.

pdf )

Я не могу вспомнить ни одного примера C # шаблона, который я видел, и тип работы, который я выполняю, не требует особого внимания (вычисления детерминированы). Выполнив несколько поисков, вы найдете ссылки на других языках, но ни одна из них не окажется качественной.

pdf )

Я не могу вспомнить ни одного примера C # шаблона, который я видел, и тип работы, который я выполняю, не требует особого внимания (вычисления детерминированы). Выполнив несколько поисков, вы найдете ссылки на других языках, но ни одна из них не окажется качественной.

16
ответ дан 3 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: