Выбор ответа Middle Файлы и процессы обновлено

Зачем child_process.fork

Вопрос

Чем fork("worker.js") отличается от spawn("node", ["worker.js"])?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: fork открывает IPC-канал: send() и событие message. fork это специальный spawn для Node-скриптов, который дополнительно открывает IPC-канал.

Варианты ответа

  1. fork открывает IPC-канал: send() и событие messageправильный ответ
  2. fork запускает код в том же процессе, как воркер
  3. fork использует общую память с родителем без копий
  4. Ничем, это синонимы для запуска Node-скриптов

Разбор

fork это специальный spawn для Node-скриптов, который дополнительно открывает IPC-канал. Сообщения сериализуются и передаются между процессами.

  • Код выполняется в отдельном процессе со своей памятью; в том же процессе работают worker_threads.
  • Общей памяти между процессами нет, SharedArrayBuffer доступен только у воркеров.
  • Без IPC-канала spawn не даст send().

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.