Worker Thread
Worker Thread 是 thread pool 架構中的執行單元, 代表一個預先建立、可重複使用的 thread, 其生命週期與任何特定 task 無關,而是與整個 pool 的生命週期綁定。
生命週期
Worker Thread 的行為本質上是一個無限迴圈,可以用以下 state machine 描述:
啟動 → 等待 signal(blocking)
↓ 收到 task
執行被指派的 function
↓ 完成
回到 blocking 狀態
↓ 收到 shutdown signal
結束
「等待 signal」這個步驟很重要:worker 不是在 busy-wait(空轉浪費 CPU), 而是 block 在一個 condition variable 或 semaphore 上, OS 不會 schedule 它,直到有 task 進來才被喚醒。
關鍵特性
Worker Thread 不綁定特定 function。 同一個 worker 在生命週期中可以先執行 task A、再執行 task B、再執行 task C, 它只是一個執行容器,工作內容完全由 dispatcher 決定。