Mengendalikan Ticker Stop Gelagat di Golang
Apabila menggunakan saluran ticker di Golang, memanggil stop() akan menghentikan saluran tetapi tidak menutupnya . Tingkah laku ini boleh membawa kepada persoalan tentang cara mengendalikan situasi dengan betul.
Dalam contoh kod, penanda dibuat dan goroutine dilancarkan untuk mendapatkan semula nilai daripada salurannya. Selepas masa yang ditetapkan, goroutine masih berjalan kerana saluran belum ditutup. Oleh itu, isu timbul: menavigasi senario ini dengan berkesan.
Melaksanakan Kawalan Ticker dengan Saluran Kedua
Satu penyelesaian ialah menggunakan saluran kedua sebagai mekanisme kawalan. Pendekatan ini menangani kebimbangan dan menyediakan persekitaran yang lebih terkawal.
Dalam kod yang disediakan dalam jawapan, fungsi Every diperkenalkan. Ia memerlukan dua hujah: tempoh masa dan fungsi untuk dilaksanakan pada setiap tanda. Dalam setiap fungsi, penanda baharu dicipta bersama saluran henti.
Sebuah goroutine dilancarkan untuk mengendalikan penanda. Goroutine menggunakan pernyataan pilih untuk memantau saluran ticker untuk acara dan saluran berhenti untuk isyarat untuk menghentikan operasi. Apabila fungsi Every dipanggil, ia mengembalikan saluran henti.
Dalam fungsi utama, fungsi Every digunakan untuk menjadualkan tugas untuk dijalankan setiap saat. Selepas selang waktu tertentu, saluran berhenti diberi isyarat untuk menamatkan ticker. Akibatnya, goroutine keluar dengan anggun dan program berakhir.
Atas ialah kandungan terperinci Bagaimana Cara Mengendalikan Gelagat Berhenti Ticker dengan Betul di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!