Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengganggu TCPListener Menerima Goroutine dalam Go?

Bagaimana untuk Mengganggu TCPListener Menerima Goroutine dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 14:20:02200semak imbas

How to Gracefully Interrupt a TCPListener's Accept Goroutine in Go?

Mengganggu TCPListener's Accept Goroutine

Dalam Go, pelayan yang mengendalikan sambungan TCP mencipta goroutine untuk mendengar sambungan masuk menggunakan (*TCPListener). Terima kaedah. Apabila pelayan perlu ditutup dengan bersih, goroutine ini mesti diganggu.

Kaedah Gangguan

Cara untuk mengganggu (*TCPListener).Terima goroutine ialah dengan tutup sahaja jaring.Pendengar yang diperolehi daripada jaring.Listen(...). Ini akan menyebabkan panggilan Terima mengembalikan ralat, membenarkan goroutine keluar dengan anggun.

Setelah jaring.Pendengar ditutup, goroutine Terima harus kembali daripada pelaksanaannya. Ini kerana dokumentasi untuk Accept menyatakan bahawa ia "menunggu panggilan seterusnya dan mengembalikan Conn generik". Apabila net.Listener ditutup, tiada lagi sambungan untuk diterima, jadi Accept goroutine akan keluar.

Atas ialah kandungan terperinci Bagaimana untuk Mengganggu TCPListener Menerima Goroutine dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn