в ней выполняются определенные действия через таймер(то что внутри таймера улетает в вебАПИ), и вот в момент выполнения этой функции ее зовет второй пользователь, то я правильно понимаю что для него вызовется отдельный "поток" с этой функцией, тоесть они будут чередоваться в работе при возвращениях с вебАПИ? П.с. знаю что сам джиес однопоточный, но с вебАПИ его можно попробовать сделать многопоточным, но я не уверен что библиотека будет ловить новые данные в тот момент пока функция еще висит в вебАПИ
JS вроде как в любом случае однопоточный. Но может быть асинхронным. То есть, по факту, может выполняться одновременно несколько функций, но последовательно во времени, как-то так. Из-за этого, если таких запросов будет слишком много(зависит ещё и от сложности функции), бот может подвисааать...
Это я понимаю, по идее второй экземпляр функции тоже должен вызваться, пока первая висит в вебАПИ, но чет сомнения есть... И не в любом яп такое, в питоне есть управление потоками, джава вообще каждый процесс отдельным потоком кидает, а в джиес приходится хитрить с ивентлупом)
Что ты имеешь ввиду под вебАПИ? Я не совсем понимаю, поэтому пока не могу ответить както.
Хаха управление потоками в питоне ._. Да там-то будет ещё медленнее чем без них Там вообще лютая дичь насколько я помню
Вот это, благодаря вебАПИ и достигается та асинхронность, ибо мы туда перекидываем команды которые нужно заморозить на время, но при этом поток не блокируется и продолжается.
ну хз, мне нравился, какой по скорости js пока не знаю, не пробовал)
Ах да, вспомнил. Оказывается это так называется. Я уж и забыл.
Я что-то немного запутался в сути вопроса...
js вроде быстрее питона...
Вызовется ли второй раз функция если прошлый екземляр ее еще в процессе работы, но висит в вебАПИ в заморозке, по идее должно сколько угодно раз вызываться, но я на js пока толком не писал и решил уточнить у более опытный
Да, должна вызваться Там же просто стек, контекст, аргументы... Короче, должна вызваться. Причём по идеи порядок вызова должен сохраниться.
Отлично, я это и хотел узнать, вроде и понимаю, но чет сомневался, спасибо вам😉
Наглая ложь) тут прям на картинке же показано, как так то
асинхронность достигается благодаря неблокирующим операциям в общем и libuv в частности
Так на картинке ж и показано, что не блокирующие операции летят в вебАПИ и тусуются там пока они не будут нужны, тогда они и возвращаются обратно в нормальный поток)
нет, посмотри внимательно)
а то что ты говоришь на картинке помечено как event loop
не, в ноде примерно также, только немного event loop изменен и вместо web api, node api
Я ж за это и говорю, просто назвал не так)
В каком нахуй вебапи он висит, вы ебанулись? Заморозка лежит в queue очереди и ивентлупом обрабатывается
Я и думал, что-то тут не то.
Вообще то ассинхроность достигается с помощью event loop и callback queue
Вебапи это и есть часть евент лупа, в ноде нодапи вроде называется)
Нет, вебапи это вебапи
но не бвстрее плюсов и хаскелла
Ой, с новым годом ещё бы поздравил. 2 недели прошло. Конечно не быстрее. Как js может быть быстрее языка на котором написано?)
как луа или джава
вычисления подключаются через напи модульно
ващет может, если знать как компиль работает
Обсуждают сегодня