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

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

33 ответов

22 просмотра

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 🇺🇦 гΔφ 🐈 ябвдулавич
но не бвстрее плюсов и хаскелла

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

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта