Народ, такой вопрос, есть функция которую вызывает пользователь через команду,

в ней выполняются определенные действия через таймер(то что внутри таймера улетает в вебАПИ), и вот в момент выполнения этой функции ее зовет второй пользователь, то я правильно понимаю что для него вызовется отдельный "поток" с этой функцией, тоесть они будут чередоваться в работе при возвращениях с вебАПИ? П.с. знаю что сам джиес однопоточный, но с вебАПИ его можно попробовать сделать многопоточным, но я не уверен что библиотека будет ловить новые данные в тот момент пока функция еще висит в вебАПИ

33 ответов

27 просмотров

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

Евгений- Автор вопроса
🏳️‍🌈Сель
JS вроде как в любом случае однопоточный. Но может...

Это я понимаю, по идее второй экземпляр функции тоже должен вызваться, пока первая висит в вебАПИ, но чет сомнения есть... И не в любом яп такое, в питоне есть управление потоками, джава вообще каждый процесс отдельным потоком кидает, а в джиес приходится хитрить с ивентлупом)

Евгений
Это я понимаю, по идее второй экземпляр функции то...

Что ты имеешь ввиду под вебАПИ? Я не совсем понимаю, поэтому пока не могу ответить както.

Евгений
Это я понимаю, по идее второй экземпляр функции то...

Хаха управление потоками в питоне ._. Да там-то будет ещё медленнее чем без них Там вообще лютая дичь насколько я помню

Евгений- Автор вопроса
🏳️‍🌈Сель
Что ты имеешь ввиду под вебАПИ? Я не совсем понима...

Вот это, благодаря вебАПИ и достигается та асинхронность, ибо мы туда перекидываем команды которые нужно заморозить на время, но при этом поток не блокируется и продолжается.

Евгений- Автор вопроса
🏳️‍🌈Сель
Хаха управление потоками в питоне ._. Да там-то бу...

ну хз, мне нравился, какой по скорости js пока не знаю, не пробовал)

Евгений
screenshot Вот это, благодаря вебАПИ и достигается та асинхро...

Ах да, вспомнил. Оказывается это так называется. Я уж и забыл.

Я что-то немного запутался в сути вопроса...

Евгений- Автор вопроса
🏳️‍🌈Сель
Я что-то немного запутался в сути вопроса...

Вызовется ли второй раз функция если прошлый екземляр ее еще в процессе работы, но висит в вебАПИ в заморозке, по идее должно сколько угодно раз вызываться, но я на js пока толком не писал и решил уточнить у более опытный

Евгений
Вызовется ли второй раз функция если прошлый екзем...

Да, должна вызваться Там же просто стек, контекст, аргументы... Короче, должна вызваться. Причём по идеи порядок вызова должен сохраниться.

Евгений- Автор вопроса
🏳️‍🌈Сель
Да, должна вызваться Там же просто стек, контекст,...

Отлично, я это и хотел узнать, вроде и понимаю, но чет сомневался, спасибо вам😉

Евгений
screenshot Вот это, благодаря вебАПИ и достигается та асинхро...

Наглая ложь) тут прям на картинке же показано, как так то

Евгений
screenshot Вот это, благодаря вебАПИ и достигается та асинхро...

асинхронность достигается благодаря неблокирующим операциям в общем и libuv в частности

Евгений- Автор вопроса
Oscar S
Наглая ложь) тут прям на картинке же показано, как...

Так на картинке ж и показано, что не блокирующие операции летят в вебАПИ и тусуются там пока они не будут нужны, тогда они и возвращаются обратно в нормальный поток)

Евгений
Так на картинке ж и показано, что не блокирующие о...

а то что ты говоришь на картинке помечено как event loop

не, в ноде примерно также, только немного event loop изменен и вместо web api, node api

Евгений- Автор вопроса
Oscar S
не, в ноде примерно также, только немного event lo...

Я ж за это и говорю, просто назвал не так)

Евгений
Вызовется ли второй раз функция если прошлый екзем...

В каком нахуй вебапи он висит, вы ебанулись? Заморозка лежит в queue очереди и ивентлупом обрабатывается

Евгений
screenshot Вот это, благодаря вебАПИ и достигается та асинхро...

Вообще то ассинхроность достигается с помощью event loop и callback queue

Евгений- Автор вопроса
vladimka
Вообще то ассинхроность достигается с помощью even...

Вебапи это и есть часть евент лупа, в ноде нодапи вроде называется)

гλI3 🇺🇦 гΔφ 🐈 ябвдулавич
но не бвстрее плюсов и хаскелла

Ой, с новым годом ещё бы поздравил. 2 недели прошло. Конечно не быстрее. Как js может быть быстрее языка на котором написано?)

гλI3 🇺🇦 гΔφ 🐈 ябвдулавич
но не бвстрее плюсов и хаскелла

вычисления подключаются через напи модульно

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

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта