Amalan Terbaik untuk Mengekalkan Program Go Jangka Panjang Hidup
Menjalankan program Go yang berjalan lama tanpa ditamatkan sebelum waktunya boleh menjadi penting untuk aplikasi tertentu. Apabila fungsi utama keluar, begitu juga program, meninggalkan mana-mana goroutine yang sedang berjalan terkandas. Bagaimanakah anda memastikan program anda kekal hidup apabila ia sepatutnya?
Satu taktik biasa untuk menghalang goroutine utama daripada keluar ialah menggunakan panggilan mudah ke fmt.Scanln(). Walau bagaimanapun, pilihan ini bermasalah jika anda tidak berniat untuk sebarang interaksi konsol.
Sebaliknya, pertimbangkan pengesyoran berikut:
Sekat Selamanya:
Sekat goroutine utama menggunakan {} pilih untuk menunggu tanpa had. Pendekatan ini memastikan program ini kekal hidup selagi pernyataan pilihan tidak terganggu.
package main import ( "fmt" "time" ) func main() { go forever() select {} // block forever } func forever() { for { fmt.Printf("%v+\n", time.Now()) time.Sleep(time.Second) } }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Program Pergi Berlangsung daripada ditamatkan lebih awal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!