初学node,听说他是单线程的,只能使用一个核心,如果CPU是多核心的,那么只能用一个核心,其他核心无法使用。对吧?
发现了一个问题。本来是想看看精确计时的问题,但是在死循环的时候,看了一下CPU的使用情况,发现四个核心都利用起来了。 反复试验了几次都是这样,没有其他软件运行。不知道是怎么回事。
var i=0; var j=0;
var star = (new Date()).getTime(); //普通计时 var star2 = time(); //精确计时 var star3 = time(); //精确计时
while (true){ i++;j++;
var t = time() - star2;
var msg = i + '_' + (new Date()).getTime() + '_' + time() + '_' +t;
//计算每循环100次需要的时间,运行结果可得,时间并不一致
if (j==100){
var t2 = (new Date()).getTime() - star;
var t3 = time() - star3;
console.log(msg + '_' + t2+ '_' + t3); //每百次用时
star = (new Date()).getTime();
star3 = time();
j=0;
}
else {
console.log(msg);
}
star2 = time();
} function time(){ var diff = process.hrtime(); return diff[0] * 1000 + diff[1] / 1e6; // nano second -> ms
}
开始运行,四个核的使用率都上来了,关闭运行,四个核的使用率都下来了。
是不是我理解错了?