Спасибо за подробное объяснение.
ал, что асинхронная обработка, такая как чтение файла, обрабатывается в другом потоке и уведомляет основной поток об окончании чтения в другом потоке.
Я пытался следовать.
const fs = require("fs")
console.time(1)
fs.readFile("largefile", x => console.timeEnd(1))
Это показывает1500ms
.
Во-вторых, я попытался следовать.
const fs = require("fs")
console.time(1)
fs.readFile("largefile", x => console.timeEnd(1))
// block main thread 1sec
const s = Date.now()
while(Date.now() - s < 1000);
Это покажет1500ms
если процесс асинхронности обрабатывается в другом потоке. Тем не менее, я получил2500ms
.
Я попробовал другой.
const fs = require("fs")
console.time(1)
fs.readFile("largefile", x => console.timeEnd(1))
setInterval(() => {
const s = Date.now()
while(Date.now() - s < 100);
}, 100)
Жду несколько минут, но сообщения нет.
Обработает ли nodejs тяжелую обработку в основном потоке?
Должен ли я использоватьchild_process
когда мне нужно читать и писать слишком много больших файлов?