Go - Select Channel


  • Declare
select {
    case <- ch:
        ...
    case x := <- ch2:
        ...
    case ch3 <- y:
        ...
    default:
        ...
}
  • Select wait until some case is ready to proceed
  • Select with no case, wait forever
select {}

Here is example, please notice if more than 1 channel can be process, Go will pick one to process randomly

沒有留言:

張貼留言

別名演算法 Alias Method

 題目 每個伺服器支援不同的 TPM (transaction per minute) 當 request 來的時候, 系統需要馬上根據 TPM 的能力隨機找到一個適合的 server. 雖然稱為 "隨機", 但還是需要有 TPM 作為權重. 解法 別名演算法...