inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

worker_threads

TypeError: Assignment to constant variable.

343

abent.developer

작성한 질문수 3

0

const {
Worker,
isMainThread,
parentPort,
workerData,
} = require("worker_threads");

const min = 2;
// const max = 10_000_000;
const primes = [];

function findPrimes(start, range) {
let isPrime = true;
const end = start + range;
for (let i = start; i < end; i++) {
for (let j = min; j < Math.sqrt(end); j++) {
if (i !== j && i % j === 0) {
isPrime = false;
break;
}
}
if (isPrime) {
primes.push(i);
}
isPrime = true;
}
}

if (isMainThread) {
const max = 10_000_000;
const threadCount = 8;
const threads = new Set();
const range = Math.ceil((max - min) / threadCount);
let start = min;
console.time("prime");
for (let i = 0; i < threadCount - 1; i++) {
const wStart = start;
threads.add(
new Worker(__filename, { workerData: { start: wStart, range } })
);
}
threads.add(
new Worker(__filename, {
workerData: { start, range: range + ((max - min + 1) % threadCount) },
})
);

for (let worker of threads) {
worker.on("error", (err) => {
throw err;
});
worker.on("exit", () => {
threads.delete(worker);
if (threads.size === 0) {
console.timeEnd("prime");
console.log(primes.length);
}
});
worker.on("message", (msg) => {
primes = primes.concat(msg);
});
}
} else {
findPrimes(workerData.start, workerData.range);
parentPort.postMessage(primes);
}
 
node:internal/event_target:777 process.nextTick(() => { throw err; }); ^ TypeError: Assignment to constant variable. at Worker.<anonymous> (/Users/itaewon/Documents/devsource/node_test/prime-worker.js:60:14) at Worker.emit (node:events:390:28) at MessagePort.<anonymous> (node:internal/worker:232:53) at MessagePort.[nodejs.internal.kHybridDispatch] (node:internalevent_target:562:20) at MessagePort.exports.emitMessage (node:internal/per_context/messageport:23:28)

Sequelize mysql mongodb nodejs

답변 1

1

제로초(조현영)

let primes = [] 입니다

리눅스 노드 설치시 패키지

0

181

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

946

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2321

2

a[title] 질문드립니다

0

397

1

리뉴얼 강의 및 공부 방법

0

605

1

jwt decode

0

1148

1

node.js 교과서 3판 질문드립니다

0

410

1

passport와 jwt

0

452

1

리뉴얼 강의

0

438

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

376

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

502

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

518

2

nunjucks res.render('error'); 작동을 안합니다.

0

536

1

질문있습니다.

0

361

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3561

1

수업자료는 어디있나요?

0

379

1

질문 있습니디

0

254

1

multer 사용시 file 외 name값은 못받나용?

0

449

1

코드 중복 부분 질문드립니다.

0

315

1

api 만드는 이유 질문드립니다.

0

305

1

Strategy의 done에 대해 질문드립니다.

0

381

1

안녕하세요 fs 권한 관련 질문드립니다

0

460

1

시퀄라이즈 연결질문...

0

524

2

res.setHeader vs res.cookie

0

1806

3