在崩潰的情況下保持 Goroutine 運行
在 Go 中,goroutines 很強大,但很容易因為錯誤或恐慌而崩潰。為了確保一個 goroutine 的故障不會影響其他 goroutine,開發人員可能想知道是否有一種方法可以讓不受影響的 goroutine 保持運作。
為了從恐慌中恢復,使用內建的recover()函數。它允許您在延遲函數中捕獲恐慌。以下輔助函數 Protect() 使用此機制來啟動具有緊急復原功能的 Goroutines:
要使用此保護,只需將您的函數作為參數傳遞給 Protect() 即可。透過將此呼叫包裝在連續列印「tick」的 for 迴圈中,我們可以示範即使另一個 goroutine 中發生恐慌,受 protected() 保護的 goroutine如何繼續運行:
這個測試應用程式將輸出:
如你所見,doPanic函數中的panic被恢復並處理,而受保護的goroutine繼續運行並列印「打鉤。」這種方法有效地將goroutine 與恐慌隔離開來,確保單一故障不會傳播並導致整個應用程式崩潰。
以上是即使在發生恐慌之後,如何讓我的 Go Goroutines 繼續運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!