Go - parallel iteration


  • Inner goroutine can send event to outer goroutine by channel
  • Ex. Pass value to inner routine function
  • Declare a variable in inner goroutine function, use outer variable will be wrong because that variable value will be changed in for loop
  • Ex. Send error to errorChannel from inner goroutine。may goroutine leak.
  • Solution is to use a buffered channel to prevent block.
  • Another solution is to use abother goroutine to get error.
  • Need sync.WaitGroup to make sure items to process all done. Wait done in a goroutine when main channel is used to receive msg from goroutine
  • Add must be callled before goroutine start, otherwise cant make sure add happens before done
  • Done same as Add(-1)


沒有留言:

張貼留言

別名演算法 Alias Method

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