Тема: Node.js
Показать сообщение отдельно
  #6 (permalink)  
Старый 10.01.2010, 01:51
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Kolyaj
Например: написан у нас веб-сервер на Node.js, приходит запрос, нам нужно прочитать с диска файл. В случае с тем же PHP чтение файла будет синхронным и весь процесс заблокируется на время чтения, поэтому там создаётся много процессов для обработки многих запросов. В случае с Node.js оставляется колбэк, который будет вызван, когда файл будет считан с диска, а за то время пока он читается, текущий процесс обрабатывает остальные http-запросы. Т.е. как с XMLHttpRequest в браузере. Так что скорее setTimeout.
Угу, но на уровне реализации, файл-то, получается, читается в другом треде этого "текущего" процесса. Возможно, так же создаётся несколько процессов с несколькими тредами. Но, я только предполагаю.

Но с точки зрения JS-кода - это просто событийное программирование, где всё разруливается коллбэками и для JS это всё подаётся, как "один" поток?

Ок, будет время, поизучаю глубже.

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