我有CPU 4内核,我有一些像这样的代码:
setInterval(function() {
Player.RunUpdate();
Animal.RunUpdate();
Bullet.RunUpdate();
GameItems.RunUpdate();
}, 1E3 / FPS);
每个.RunUpdate()
都是这样的循环:
for(var id in player_list){
//check something and update postion
}
如何为一个.RunUpdate()
使用一个核心?可能吗?例如:
setInterval(function() {
core_1{
Player.RunUpdate();
}
core_2{
Animal.RunUpdate();
}
core_3{
Bullet.RunUpdate();
}
core_4{
GameItems.RunUpdate();
}, 1E3 / FPS);
感谢阅读!
答案 0 :(得分:0)
答案 1 :(得分:0)
我可以理解你想要使用CPU核心,我建议你运行下面的代码。
将其保存为server.js然后使用节点命令运行它,例如" node server.js"。
在下面的代码中,假设你的CPU有4个核心,那么这个代码将创建4个线程(因为你的CPU通过这行代码require('os').cpus().length
有4个核心)。
这使您的程序执行速度提高了4倍。 现在您可以假设您可以相应地使用CPU的核心。
var http = require('http');
var cluster = require('cluster');
var numCPU = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
for (let i = 0; i < numCPU; i++) {
console.log('' + i + '.' + cluster.fork());
}
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died.`);
});
} else {
http.createServer((req, res) => {
res.writeHead(200, { 'content-type': 'plain/text' });
res.end('Hello cluster');
}).listen(8000, () => {
console.log('server is running on 8000');
});
console.log(`Worker ${process.pid} started`);