Memastikan Program Go yang Berlangsung Lama Berjalan
Apabila menjalankan pelayan yang berjalan lama dalam Go, menghalang fungsi utama daripada keluar adalah penting untuk mengekalkan program ini. Satu amalan biasa ialah menggunakan fmt.Scanln() untuk menjeda pelaksanaan selama-lamanya, tetapi pendekatan ini mungkin tidak optimum.
Penyelesaian Berasaskan Penyekatan
Penyelesaian yang lebih baik ialah untuk menggunakan operasi menyekat untuk menghalang utama daripada keluar. Pertimbangkan kod berikut:
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) } }
Dalam contoh ini, pilih {} digunakan untuk menyekat goroutine utama selama-lamanya. Ia mencipta operasi pilih menyekat, yang menunggu selama-lamanya untuk sebarang operasi pada saluran berganda selesai. Memandangkan tiada saluran dalam penyata pilihan, ia tidak akan keluar.
Pertimbangan Lain
Ringkasnya, menggunakan operasi menyekat (seperti pilih {}) ialah kaedah yang boleh dipercayai untuk mengekalkan program Go yang berjalan lama. Menggabungkan pendekatan ini dengan pengendalian penutupan yang anggun dan mekanisme pengesanan terbiar memastikan sistem yang teguh dan stabil.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Mengekalkan Program Go yang Berlangsung Lama daripada Keluar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!