Bolehkah Goroutine Ditamatkan Sebelum Selesai?
Isu ini telah ditangani sebelum ini. Persoalan yang timbul ialah sama ada gorout boleh ditamatkan sebelum ia selesai dilaksanakan.
Contoh selalunya mempamerkan penggunaan saluran dan memilih untuk tujuan ini, yang berkesan apabila gorout terlibat dalam tugas berulang yang membenarkan pemantauan saluran. Walau bagaimanapun, dalam coretan kod yang disediakan, kami menemui goroutine yang melakukan satu tindakan sebelum kembali:
<code class="go">func main() { stop := make(chan string, 1) go func() { time.Sleep(10 * time.Second) stop <- "stop" return }() <- stop }</code>
Bolehkah kami menghentikan pelaksanaan goroutine ini sebelum ia siap?
Jawapan: Goroutine Tidak Boleh Kawal
Malangnya, tiada cara langsung untuk menamatkan goroutine sebelum ia kembali (selain daripada keluar secara tiba-tiba daripada keseluruhan program menggunakan os.Exit).
Goroutines sememangnya serba lengkap dan tidak tertakluk kepada kawalan luaran. Setelah dilancarkan, mereka beroperasi secara bebas dan tidak boleh dihentikan secara paksa.
Atas ialah kandungan terperinci Bolehkah Goroutine Ditamatkan Sebelum Mereka Menyelesaikan Pelaksanaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!