worker thread pool을 만들어서 반복문으로 cpu가 많이 먹는 작업을 돌리고 있습니다.
그런데 한가지 궁금한게 생겼습니다.
for (let i = 0; i < infos.length; i++) {
(async () => {
const result = await pool.exec(infos[i]);
if(result !== false && result !== ‘false’) {
try {
await db.asyncBulk(“query”);
console.log(result.length + " : " + i + " - total: " + infos.length);
} catch(err) {
console.log("db Error: ");
console.log(err);
}
}
})();
///////////////////////////////////////////////
for (let i = 0; i < infos.length; i++) {
const result = await pool.exec(infos[i]);
if(result !== false && result !== ‘false’) {
try {
await db.asyncBulk(“query”);
console.log(result.length + " : " + i + " - total: " + infos.length);
} catch(err) {
console.log("db Error: ");
console.log(err);
}
}
}
아래 코드와 위 코드의 차이점을 모르겠습니다.
동작에서는 위 코드가 훨씬 빠르게 동작하는데요 아래 코드는 굉장히 느립니다.
위코드는 동작부분을 익명 함수로 감싸준거같은데
코드에서 속도 차이가 많이나는지 모르겠습니다.
인터넷에서 찾아보고 했으나 정확한 차이를 찾지 못해서 질문 올려봅니다.
조언 좀 부탁드리겠습니다.
감사합니다.