ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
21 декабря
1011667 Топик полностью
fk0, легенда (11.06.2020 23:34, просмотров: 987) ответил Cкpипaч на Организуйте очередь событий и отстаньте от совы.
И получится Quantum Leap он же state-machine.com. И сразу будут спрашивать, "а что если очередь событий переполнится". И ведь переполняется бывает. С очередью есть одна принципиальная проблема: события из очереди обрабатываются в порядке очереди. И если она одна на всё, то возможен "шторм событий", когда некоторые события попавшие на вход генерируют достаточно большое количество внутренний событий, и так рекурсивно. И если на вход поступает сразу много "проблемных" событий, 

то очередь переполняется и вся система разваливается. И оценить необхоимый размер очереди не проще чем объём памяти зарезервированный для стека -- чистое <strike>шаманство</strike> эвристика.


Я поэтому и говорю об атомарных событиях, которые или произошли, или нет: прочая информация, если она нужна, должна передаваться через другие механизмы (fifo-буфер, другая очередь событий специфичная только для событий определённого типа и т.п.)


Опять же очередь событий подразумевает что все события попадают в какое-то одно место. А получатели разные. Стало быть нужен механизм подписки (вот плавно подходим к планировщику) или широковещательных сообщений (когда из одной очереди, в которую пишут все, оно дублируется в очереди компонентов подписанных на сообщения определённых типов). Обрастает сомнительными сложностями.

[ZX]