Здравствуйте!
Читал справку, пользовался поиском, но ответа на вопрос не нашёл! Вопрос: Создадутся-ли несколько копий схемы в MultiElementEx, Mode=OnlyOnce, если несколько событий произойдут одновременно (скорость работы схемы будет дольше, чем приход нового события)?
Этот топик читают: Гость
Ответов: 1061
Рейтинг: 22
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX, в однопоточных программ несколько событий сразу произойти не могут физически, "наружу" контейнера управление передастся только после отработки внутренностей контейнера с последующим удалением содержимого. Если внутри контейнера будут настроенные без синхронизации многопоточные элементы типа работающих с http, то не исключаю вариант самоуничтожения схемы до завершения, например, закачки - могут быть нежелательные последствия в виде критических ошибок.
|
|||
карма: 1 |
|
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0 писал(а): RinniX, в однопоточных программ несколько событий сразу произойти не могут физическиВот это не очень понятно! Допустим в контейнер поступило событие, в контейнере начинаются процессы, поступает второе событие, а процессы в контейнере ещё не завершены, получается, что копия контейнера удаляется и создаётся новая копия контейнера! Так? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX, в случае работы в одном потоке поступить второе событие не должно физически, основная программа на время исполнения внутренностей контейнера НЕ работает, "ждёт" отработки.
|
|||
карма: 1 |
|
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0 писал(а): основная программа на время исполнения внутренностей контейнера НЕ работает, "ждёт" отработки.Понял! Программа не пустит событие пока не выполнятся последовательная цепочка событий! А как быть в случае сервера? Если запросы от клиентов превышают время выполнения цепочки событий программы? Запросы не будут обработаны? Или есть какая-то очерёдность событий? Запоминаются-ли эти запросы или нет? |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
RinniX, вот по проще:
Имеем всего один поток (без наворотов, так в большинстве случаев) В мультик стучится событие по нажатию кнопки (doWork1): мультик создается в памяти компьютера, все его элементы инициализируются и событие входит внутрь. Мультик что-то с ним делает, и перед возвратом на место входа все содержимое мультика безжалостно уносится в топку: code_26951.txt Вариант с многопоточными приложениями вообще не советую рассматривать. Там все зависит от многих параметров: общие ли данные, много ли точек входа, сколько всего потоков работают с этим мультиком одновременно... И все это очень сильно пахнет жареным ------------ Дoбавленo в 14.07: Эх, пока писал, уже все понял |
|||
карма: 10 |
| ||
файлы: 1 | code_26951.txt [1.2KB] [130] |
Ответов: 3889
Рейтинг: 362
|
|||
RinniX писал(а): Запоминаются-ли эти запросы или нет?Большинство сетевых компонентов, хоть это и не афишируется - многопоточные. Например, в TCP_ServerEx каждый клиент порождает свой, независимый поток, инициированный системой. Поток работает с новым экземпляром схемы, создаваемым при первом подключении. По идее, при отключении экземпляр должен уничтожаться, точнее можно сказать после изучения кода. |
|||
карма: 1 |
|
Ответов: 1061
Рейтинг: 22
|
|||
Assasin, Спасибо! Так наглядней и понятней стало! +++++!
А в случае сервера что скажешь? Сохраняются события/запросы или они теряются в это время? ------------ Дoбавленo в 14.24: 1nd1g0 писал(а): Большинство сетевых компонентов, хоть это и не афишируется - многопоточные. Например, в TCP_ServerEx каждый клиент порождает свой, независимый поток, инициированный системой. Поток работает с новым экземпляром схемы, создаваемым при первом подключении. По идее, при отключении экземпляр должен уничтожаться, точнее можно сказать после изучения кода.Понятно! Т.е. во время пока программа обрабатывает свои события, параллельно работает только TCP_ServerEx, ну или многопоточные компоненты! Так? ------------ Дoбавленo в 14.25: А какие ещё компоненты многопоточны? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
RinniX писал(а): А какие ещё компоненты многопоточны?Многие, некоторые очевидно (запрограммировано авторами), некоторые - нет (система порождает потоки в процессе работы). специально сделаны многопоточными BenchmarkCPU
BenchmarkHDD BenchmarkRAM Cryptography Debug DirectoryChanges DirectShowPlayer EnumProcess HTTP_Get KE_Connect MailSlot_Server MutexThread PBlur Thread UDP WindowAnimation WinExec |
|||
карма: 1 |
| ||
Голосовали: | RinniX |
Ответов: 1061
Рейтинг: 22
|
|||
1nd1g0, Спасибо! У тебя рейтинг не такой весёлый как у Assasin, поэтому могу позволить себе испортить его тебе!
|
|||
карма: 0 |
|
10