請在本作業中:
- 實作一個 Worker Pool,能分派 N 個 CPU 任務;
- 示範 SharedArrayBuffer + Atomics 的使用;
- 前端(Web Worker)與後端(Node Worker)透過 WebSocket 傳遞 delta,同步資料。
概念:前端 Web Worker → WebSocket → 伺服器 Worker Pool → SharedArrayBuffer
以下為 worker pool 實作示範:包含任務排隊、重用 worker、Promise 接口。
// workerPool.js
const { Worker } = require('node:worker_threads');
...
// main.js
const WorkerPool = require('./workerPool');
...
示例:主程式建立 SAB,worker 使用 Atomics.wait/notify 高效同步。
// server.js (SAB 範例)
...
// sab-worker.js
...
示例:前端 Web Worker 做本地計算,並透過 WebSocket 傳送 delta 至伺服器。
// client.js (片段)
...
// browser-worker.js
...