Я новичок в nodejs, в настоящее время изучаю его. Я знаю, что nodejs является однопоточным, однако мне интересно: если я использую неблокирующий метод, например, , есть 20000 одновременных запросов, и есть один запрос, требующий длительного времени, другие потоки занимают меньше времени. Итак, однажды мы встретились с более длинным запросом времени, nodejs скажет «привет, пожалуйста, пауза, другой запрос нужно использовать», есть ли время по умолчанию для nodejs, чтобы определить, нужно ли это приостановить? Исправьте меня, если я использую неправильное слово «puase» (потому что я думаю, что он является однопоточным, поэтому он должен прекратить вычислять один запрос, если другой запрос хочет быть обработанным.). В ситуации, которую я предположил, тогда более длинный запрос требует много времени, чтобы его можно было обработать?nodejs single thread? как это работает, если есть много параллельных запросов
Спасибо за помощь.
Если долгое время имеет много синхронных вещей, да, у вас будет проблема, но если это асинхронно, например, чтение файла или запись файла, другие запросы будут продолжать обрабатываться, а ожидая завершения асинхронного действия. javascript запускается в цикле событий. Из-за этого вам следует избегать использования синхронных действий в приложении node.js, обслуживающем запросы. –
@KevinB да, я понимаю, что другие будут обработаны, если я использую asynchonous. Но мой вопрос заключается в том, что, поскольку он является однопоточным, если вы обрабатываете другой запрос, требуется более короткое время, в течение этого времени более длительный запрос не обрабатывается в течение этого времени. Исправьте меня, если я ошибаюсь. Тогда есть много более короткого запроса времени, который приведет к тому, что запрос более длительного времени не будет прессованным. И нужно больше времени для завершения более длительного запроса. Это правильно? – adiggo
Вот аналогия. Node.js - король. Он сидит на своем троне, и слуги приходят с просьбами о поиске ответов. Король слышит только один запрос за раз, и только один раз реагирует один раз. Тем не менее, у него много слуг, чтобы выполнять свою работу. Слуга А приходит немедленно, а затем слуга Б. Король слушает слугу А, а затем отправляет его, чтобы получить кофе. Затем он слушает слугу B и отправляет его, чтобы открыть окно. Если слуга Б возвращается к слуге А, слуга В будет уволен первым, а король все еще ждет слугу А. Когда слуга А вернется, король уволит его. 2. –