讓我們統整一下整個 GenServer process 從啟動、接收訊息到結束的流程
啟動並有了剛開始的 state 之後,GenServer 便會自己 Loop 等待訊息

當接收到訊息,可能是 call, cast, 或是一般的 message,就執行相對應的 callback 函式
結束後便會回到等待的狀態

當收到關閉指令或是發生錯誤,通知上級並執行 terminate callback

如果同時有多個訊息,process 會先進先出的一個一個執行,當然,如果有很多相同又不互相依賴的工作,可以有無數個 process 同時進行,管理一批 process 就會用到下一章要講的 supervisor