func main() { defer fmt.Println("Main defer") go t1() go t2() go t3() time.Sleep(20 * time.Second)}func t1() { defer fmt.Println("t1 defer") time.Sleep(20 * time.Second)}func t2() { defer fmt.Println("t2 defer") time.Sleep(5 * time.Second) panic(New("T2"))}func t3() { defer fmt.Println("t3 defer") time.Sleep(20 * time.Second)}1個線程(t2)調用發生恐慌,t2延遲被調用。當t2出現緊急情況時,所有其他線程也將終止。我希望每個線程的延遲都被調用。在這種情況下,必須緊急處理,而緊急處理在一個線程中。因此,我希望每個線程都知道程序將要退出。有什么辦法可以實現?當前輸出:t2 deferpanic: T2goroutine 19 [running]:main.t2() C:/Users/Talha.Irfan/OneDrive - Bentley Systems, Inc/Desktop/go_test/src/main2/main.go:34 +0x105created by main.main C:/Users/Talha.Irfan/OneDrive - Bentley Systems, Inc/Desktop/go_test/src/main2/main.go:21 +0xb0
- 1 回答
- 0 關注
- 286 瀏覽
添加回答
舉報
0/150
提交
取消