作業:Node.js 平行運用

藍色漸層主題 • 包含 Worker Pool、SharedArrayBuffer、Web Worker 混搭範例

一、作業說明

請在本作業中:
- 實作一個 Worker Pool,能分派 N 個 CPU 任務;
- 示範 SharedArrayBuffer + Atomics 的使用;
- 前端(Web Worker)與後端(Node Worker)透過 WebSocket 傳遞 delta,同步資料。

  1. 提交:壓縮檔(含 server.js、worker/*.js、public/)
  2. 評分重點:正確性、效能、註解、README

二、系統流程圖

概念:前端 Web Worker → WebSocket → 伺服器 Worker Pool → SharedArrayBuffer

三、範例:Worker Pool(核心)

以下為 worker pool 實作示範:包含任務排隊、重用 worker、Promise 接口。

// workerPool.js
const { Worker } = require('node:worker_threads');
...
          
// main.js
const WorkerPool = require('./workerPool');
...
          

四、範例:SharedArrayBuffer + Atomics(Node)

示例:主程式建立 SAB,worker 使用 Atomics.wait/notify 高效同步。

// server.js (SAB 範例)
...
        
// sab-worker.js
...
        

五、範例:瀏覽器 Web Worker 與 WebSocket 混搭

示例:前端 Web Worker 做本地計算,並透過 WebSocket 傳送 delta 至伺服器。

// client.js (片段)
...
        
// browser-worker.js
...
        
回首頁