Goroutine, rangkaian ringan Go, adalah penting untuk keselarasan. Memahami masa ia menghasilkan kawalan adalah penting untuk mengoptimumkan prestasi kod.
Mata Preemption Tradisional
Sebelum ini, goroutin hanya menghasilkan pada titik tertentu, termasuk:
Asynchronous Preemption (Go 1.14 )
Versi 1.14 of Go memperkenalkan preemption tak segerak, bermakna goroutine kini boleh menghasilkan kawalan hampir di mana-mana sahaja. Ini mengurangkan risiko kebuntuan dan kelewatan.
Mata Preemption dalam Contoh Anda
Kod contoh yang disediakan dalam soalan tidak termasuk panggilan fungsi atau menyekat syscall. Walau bagaimanapun, output masih menunjukkan interleaving mesej, menunjukkan bahawa goroutines akan menghasilkan.
Sebab Kemungkinan untuk Preemption
Kesimpulan
Program In Go, gorout kini boleh kawalan hasil secara tak segerak pada hampir mana-mana titik. Ini adalah peningkatan daripada versi terdahulu yang memerlukan mata preemption tertentu. Walau bagaimanapun, adalah penting untuk mengetahui tentang potensi kesan kutipan sampah dan faktor lain yang boleh mempengaruhi penjadualan goroutine.
Atas ialah kandungan terperinci Bilakah Goroutines Berhasil dalam Pergi: Preemption Segerak lwn Tak Segerak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!