讓我們統整一下整個 GenServer process 從啟動、接收訊息到結束的流程
啟動並有了剛開始的 state 之後,GenServer 便會自己 Loop 等待訊息
當接收到訊息,可能是 call
, cast
, 或是一般的 message
,就執行相對應的 callback 函式
結束後便會回到等待的狀態
當收到關閉指令或是發生錯誤,通知上級並執行 terminate callback
如果同時有多個訊息,process 會先進先出的一個一個執行,當然,如果有很多相同又不互相依賴的工作,可以有無數個 process 同時進行,管理一批 process 就會用到下一章要講的 supervisor