javascript / intermediate
Snippet
CPU-Aufgaben auslagern mit Worker Threads
Node.js Worker Threads ermöglichen die parallele Ausführung von JavaScript. Dies ist essenziell für schwere Berechnungen, die sonst den Haupt-Event-Loop blockieren würden.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
const { Worker, isMainThread, parentPort } = require('node:worker_threads');if (isMainThread) {const worker = new Worker(__filename);worker.on('message', (result) => console.log('Result:', result));worker.postMessage(40);} else {parentPort.on('message', (num) => {const fib = (n) => (n <= 1 ? n : fib(n - 1) + fib(n - 2));parentPort.postMessage(fib(num));});}
nodejs
Erklärung
1
new Worker(__filename)
Erzeugt einen neuen Thread und nutzt die aktuelle Datei als Einstiegspunkt.
2
parentPort.postMessage(...)
Sendet Daten vom Worker-Thread zurück an den Haupt-Thread.