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 決定。