Go, Goroutines, Backend, Sre.
goroutine 除了反應 array 長度的變化外，也意味著 pool 大小的增減。（後面的說明會把 goroutine 抽象成 worker） 如何實作 queue：goroutine 之間的溝通就是透過 channel，而 channel 有分成 unbuffered channel 與 buffered channel，利用這個特性實作出 queue。 設計上保留彈性，讓用戶根據使用場景決定 queue 的長度，預設是 0，也就是沒有 queue 的存在，走 unbuffered channel 的機制，每當要把新工作安排進去的唯一條件就是後面有空閒的 worker