generated at
マルチスレッドで処理をするサンプル
マルチスレッドを扱いやすくするためにworkerpoolを使う(インストールが必要: npm i workerpool
スレッド間で値をやり取りするとシリアライズが行われ、値が持っているいくつかの情報が破損するため注意。

main.js
const workerpool = require('workerpool') const pool = workerpool.pool('./worker.js') !(async () => { // worker側で定義された"fib"関数に46を渡して実行する const result = await pool.exec('fib', [46]) .catch(err => console.error(err)) console.log('Result:', result) // workerを終了させる(ボットで使う場合は基本的に不要) pool.terminate() })()

worker.js
const workerpool = require('workerpool') function fib(n) { if (n < 2) return n return fib(n - 2) + fib(n - 1) } // fib関数を登録 workerpool.worker({ fib })