@root
люди тут пытаются на запросах сделать и то больше 500 потоков не работает) а нод использовать вообще надо только когда уже деваться некуда как по мне в плане ресурсов
node.js использует неблокирующие вызовы некоторых функций, в частности это касается сокетов. Неблокирующие вызовы позволяют не создавать потоков, и тем не менее выполнять работу параллельно. Вот пример работы, в 2000 потоков, потоки на самом деле не создаются, но как видно на видео работа действительно идет параллельно.
https://youtu.be/PnBsJsli_3c
Код, чтобы вы могли проверить самостоятельно.
const https = require('https');
class Thread
{
constructor(ThreadNumber)
{
this.ThreadNumber = ThreadNumber
}
Start()
{
let self = this
https.get('https://google.com', (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
console.log(`Thread ${self.ThreadNumber}. Got responce from server, length = ${data.length}`);
self.RunNextRequest()
});
}).on("error", (err) => {
console.log(`Thread ${self.ThreadNumber}. Error: ${err.message}`)
self.RunNextRequest()
});
}
RunNextRequest()
{
let self = this
setTimeout(function(){self.Start()},1)
}
}
for(let i = 0;i<2000;i++)
{
let t = new Thread(i)
t.Start()
}
И по пунктам:
захват клавиш, мышки
https://www.npmjs.com/package/iohook
работа с реестром
https://www.npmjs.com/package/windows-registry
мониторинг ресурсов
инфо о памяти/проц
https://www.npmjs.com/package/systeminformation
работа с окнами
https://www.npmjs.com/package/ffi
https://www.npmjs.com/package/libui-node