|
Параллельность и Асинхронность | ☑ | ||
---|---|---|---|---|
0
BaldKiwi
29.01.21
✎
03:01
|
Подскажите, а чем отличается 2 эти способа, и используется ли параллельность при допустим асинхронном открытие формы?
|
|||
1
rphosts
29.01.21
✎
03:48
|
>используется ли параллельность при допустим асинхронном открытие формы?
Зависит от того, что ты имеешь в виду под параллельностью. После "асинхронного" открытия формы в ней отрабатывают все каике положено обработчики (типа при создании на сервере) и управление сразу-же возвращается туда откуда открытие было вызвано. Не важно что эта форма будет поверх остальных или нет. |
|||
2
BaldKiwi
29.01.21
✎
05:49
|
(1) Это понятно, допустим асинхронное открытие формы не подразумевает под собой ожидание ответа от пользователя, код отработает до конца.
Параллельность говорит о том, что в машине физически происходит несколько процессов одновременно, при этом, с точки зрения кода программы это всё может выглядеть вполне синхронно, например, если подряд вызываются две функции, то исполняющая среда может решить по каким-то признакам, что эти функции независимы, и выполнить их параллельно. С точки зрения программы этого заметно не будет но вот что-то не совсем понимаю, есть ли параллельность в самой 1с |
|||
3
Йохохо
29.01.21
✎
05:59
|
обычно про параллелизм говорят в контексте исполнения алгоритма, выполняемые потоки ос в алгоритм кода одинесины не попадают
|
|||
4
rphosts
29.01.21
✎
06:01
|
(2) >есть ли параллельность в самой 1с
Разные процессы имени меня, нити... конечно есть. У 1 сеанса одновременно указатель на выполняемый код только 1, т.е. в рамках 1 сеанса - нет, но из 1 сеанса можно сделать несколько одновременно выполняемых кусков кода. Может вы зададите конкретный вопрос? |
|||
5
BaldKiwi
29.01.21
✎
06:19
|
(4) Я правильно понимаю, что параллельность, можно охарактеризовать тем, что она может одновременно выполнить 2 процедуры/функции? а если взять код 1с, то такого делать он не может(насколько я знаю), у нас выполняется допустим одна вызванная функция, из этой функции мы можем вызвать еще одну функция, но они будут отрабатывать только последовательно
(3) Понял, спасибо |
|||
6
Йохохо
29.01.21
✎
06:22
|
(5) код будет исполнен параллельно, а алгоритм асинхронно
|
|||
7
rphosts
29.01.21
✎
06:22
|
(5) 1.>у нас выполняется допустим одна вызванная функция, из этой функции мы можем вызвать еще одну функция, но они будут отрабатывать только последовательно
смотря как вызвать... Отчеты на СКД под УФ формировали? Вы заметили, что пока оно там формируется можно что-то делать? А отчёт между тем формируется. |
|||
8
Провинциальный 1сник
29.01.21
✎
06:26
|
Асинхронность в 1с вызвана не требованиями параллельности исполнения. Она вызвана требованиями совместимости веб-клиента с убогим джаваскриптом современных браузеров. Собственно, отрасли нахрен не сдалось связанное с этим дополнительное усложнение кода, и без этого сложность зашкаливает.
|
|||
9
Йохохо
29.01.21
✎
06:32
|
(5) "а если взять код 1с, то такого делать он не может" ты можешь запуздырить задачу в фоновое выполнение
|
|||
10
чувак
29.01.21
✎
06:50
|
(8) Т.е. ассинхроннсть исключает модальное использование окон?
|
|||
11
Вафель
29.01.21
✎
07:23
|
(8) в 18 версии завезли промисы и сложность кода существенно уменьшится
|
|||
12
Вафель
29.01.21
✎
07:24
|
асинхронность - это такой вид авто параллельности. когда некоторые, заранее определенные методы выполняются в отдельном потоке без возможности на это влиять
|
|||
13
rphosts
29.01.21
✎
07:26
|
(10) но можно открыть окно так, что-бы оно было поверх всех окон.
|
|||
14
BaldKiwi
29.01.21
✎
07:33
|
(7) Нет, СКД под УФ еще не было "возможности" формировать, но учту такой вариант, спасибо за пример.
(9) Как вариант, но будет-ли тут уместно "параллельность" (параллельное выполнение)? (12) (13) Спасибо, думаю тут я нашел нужный себе ответ |
|||
15
чувак
29.01.21
✎
07:56
|
(13) По умолчанию в последних типовых модальность в свойствах конфы отключены. Кагбе 1с намекает - нафик модальные окна, да здравствует Опеисание оповещения )
|
|||
16
чувак
29.01.21
✎
07:58
|
(13) Разве в браузерах такое есть?
|
|||
17
sitex
naïve
29.01.21
✎
08:02
|
(16) Почему нет.
|
|||
18
Провинциальный 1сник
29.01.21
✎
08:03
|
(11) Это вряд ли. Если раньше была четкая "точка выполнения кода", то с промисами отладка вообще превратится в ад.
|
|||
19
sitex
naïve
29.01.21
✎
08:04
|
(18) Ну в JS справляемся. Вроде ничего сложного.
|
|||
20
Uberschall
29.01.21
✎
08:09
|
асинхронность- отсутствие синхронности. так-то и параллельность может быть синхронной, когда несколько потоков выполняются параллельно, но по завершению каждого этапа собираются на синхронизаторе и ждут когда все потоки будут готовы, чтобы продолжить выполнение дальше.
|
|||
21
rphosts
29.01.21
✎
08:11
|
(14) 2.уместно
|
|||
22
BaldKiwi
29.01.21
✎
08:15
|
(21) Благодарю
|
|||
23
sikuda
29.01.21
✎
10:07
|
(12) Не соглашусь что "асинхронность - это такой вид авто параллельности"
- параллельность это когда кроме выполнения кода формы ты запускаешь фоновое задание - асинхронность это когда ты делаешь Оповешение, продолжает работать код, но в некоторый момент выполнение переходит внутрь Оповещения(callback) |
|||
24
ДедМорроз
30.01.21
✎
16:38
|
Асинхронность через оповещения - это не совсем параллельность.
Это мы говорим системе - сделай что-то и потом позови нас. Наш код продолжает исполняться с того места,как мы дали задание системе,дальше. И promise, как раз сделаны,чтобы дождаться результата в том же коде. Но,нужно понимать,что наш поток должен остановиться, чтобы иметь возможность выполнить обратный вызов. Асинхронность появилась в операционной системе тогда,когда появился прямой доступ к памяти,и операции ваода-вывода выполнялись без участия процессора,который мог продолжить выполнение своего кода,а результат выполнения обмена обрабатывался через прерывание. И эта схема не допускала никакой параллельности вообще. Сейчас же,вся работа системы скрыта от нас,в том числе и формирование окон и для web-клиента и файловые операции. Но,код 1с не выполняется параллельно на клиенте (а собственно только здесь есть оповещения) никогда. Даже когда была модальность,все равно,код при вызове модальности сохранял контекст и переходил к выполнению кода в открытом модальном окне. Собственно,для браузера,проблема не столько в модальном окне,сколько в реализации сохранения контекста исполнения и возврата в него после завершения обработки дочернего окна. Ну и опять же,укладочный режим браузера не предполагает создания дочерних окон,которые рисуются на странице при помощи html и css. И,на самом деле,через простой html и используя iframe,можно на странице нарисовать полное подобие MDI с перемещаемыми окнами,которые могут перекрывать друг друга (сам делал),только он,к сожалению,уже считается устаревшим. Но,очень удобно,когда что-то копируешь с одной страницы на другую. А параллельность - это новый процесс и новый поток,что,например,имеет место быть в новых версиях платформы для фоновых заданий в файловом варианте. Не говоря уж про исполнение фоновых заданий на сервере. В браузерах,кстати,сейчас по стандарту html5 есть дочерние потоки исполнения,но насколько они реализованы честно,я сказать не могу (ведь можно в одном потоке системы переключать контексты выполнения и исполнять несколько процессов,как это делает операционная система,когда задач больше,чем ядер) |
|||
25
sapphire
30.01.21
✎
16:51
|
(24) promise-ы и новшевства с async/wait перекочевали из мира js...
А уж там сколько копий сломано и каких только костылей не по-написано для правильной и логичной обработки... |
|||
26
ДедМорроз
30.01.21
✎
18:53
|
На самом деле,первыми начали Microsoft,когда в Vba появилась функция DoEvents,которая по сути и выполняла отложенный код, а js тогда ещё только начинался.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |