Size: a a a

2019 August 22

K

Kirill in JSNN 🤔 (GSNN)
если конкретно за движки то вот вроде тут хорошо расписано как работает v8
источник

K

Kirill in JSNN 🤔 (GSNN)
источник

GS

Georgii Sharadze in JSNN 🤔 (GSNN)
Ну насколько я знаю в спеке языка говорится что js однопоточный, поэтому средствами языка многопоточность реализовать невозможно. Соответственно я так же знаю что когда js на рантайме, то движок (например в8) делает кучу оптимизаций, чтобы код исполнялся быстрее. В том числе внутри него работает несколько пулов потоков для разных операций (работа с сетью, с фс, и тд.) Значит многопоточность в js как бы есть, но она реализована под капотом. И вопрос в том, работает ли это все на coroutines или когда поток, ответственный за запрос в сеть собственно делает этот асинхронный запрос в сеть, просто простаивает, дожидаясь результата?
источник

A

Anton in JSNN 🤔 (GSNN)
Georgii Sharadze
Ну насколько я знаю в спеке языка говорится что js однопоточный, поэтому средствами языка многопоточность реализовать невозможно. Соответственно я так же знаю что когда js на рантайме, то движок (например в8) делает кучу оптимизаций, чтобы код исполнялся быстрее. В том числе внутри него работает несколько пулов потоков для разных операций (работа с сетью, с фс, и тд.) Значит многопоточность в js как бы есть, но она реализована под капотом. И вопрос в том, работает ли это все на coroutines или когда поток, ответственный за запрос в сеть собственно делает этот асинхронный запрос в сеть, просто простаивает, дожидаясь результата?
прости, но когда v8 начал самостоятельно работать с файловой системой???
источник

K

Kirill in JSNN 🤔 (GSNN)
вот вот
источник

K

Kirill in JSNN 🤔 (GSNN)
v8 отвечает за то чтобы твой текстовый js превратился в машинный код
источник

K

Kirill in JSNN 🤔 (GSNN)
ну и там сборка мусора и прочее
источник

NS

Nick Shevrov in JSNN 🤔 (GSNN)
источник

NS

Nick Shevrov in JSNN 🤔 (GSNN)
Те операции, о которых ты говоришь — это все C/С++ код
источник

GS

Georgii Sharadze in JSNN 🤔 (GSNN)
Я наверняка не знаю как это работает, говорю на доступных мне абстракциях, спасибо что поправили)
источник

GS

Georgii Sharadze in JSNN 🤔 (GSNN)
Если бы знал, вопроса не было бы
источник

K

Kirill in JSNN 🤔 (GSNN)
ошибка в том что ты говоря движок js подразумеваешь nodejs
источник

K

Kirill in JSNN 🤔 (GSNN)
или хромиум или еще что то
источник

NS

Nick Shevrov in JSNN 🤔 (GSNN)
Что такое corutines в терминах ОС я не знаю, в С либах, например C-ares — обычный POSIX Threads
источник

K

Kirill in JSNN 🤔 (GSNN)
смотрите походу будет parallel gc как в джавке православной https://v8.dev/blog/trash-talk
источник

NS

Nick Shevrov in JSNN 🤔 (GSNN)
Корутины — это уже скорее на несколько уровней выше
источник

NS

Nick Shevrov in JSNN 🤔 (GSNN)
Чуть устаревшая схема только, c-ares они на что-то другое свапнули
источник

SS

Sergey Smyshlyaev in JSNN 🤔 (GSNN)
Ребята, я не могу это читать, у вас всё в кучу смешалось
источник

GS

Georgii Sharadze in JSNN 🤔 (GSNN)
Разложи, пожалуйста)
источник

K

Kirill in JSNN 🤔 (GSNN)
Sergey Smyshlyaev
Ребята, я не могу это читать, у вас всё в кучу смешалось
ты сам смешал выше в ответе про движки упомянул ноду
источник