Dalam Go, goroutine ialah urutan pelaksanaan ringan yang boleh dibuat menggunakan kata kunci go. Goroutine utama ialah goroutine pertama yang dicipta apabila program Go bermula, dan ia bertanggungjawab untuk memulakan program dan memulakan goroutine lain. Goroutine yang dihasilkan dicipta oleh goroutine lain dan ia boleh digunakan untuk melaksanakan tugas secara selari.
Salah satu perbezaan utama antara goroutine utama dan goroutin bertelur ialah saiz tindanannya. Saiz tindanan goroutine utama biasanya jauh lebih besar daripada saiz tindanan goroutin yang bertelur. Ini kerana goroutine utama bertanggungjawab untuk mengendalikan panggilan sistem dan tugas lain yang memerlukan saiz tindanan yang lebih besar.
Saiz tindanan goroutin bertelur boleh dilaraskan menggunakan pembolehubah persekitaran GODEBUG=gcflags=-G=10. Pembolehubah ini menetapkan saiz tindanan kepada 10 megabait, iaitu saiz tindanan maksimum yang boleh digunakan oleh goroutine.
Satu lagi perbezaan antara goroutine utama dan goroutin bertelur adalah cara mereka memperuntukkan ingatan. Goroutine utama memperuntukkan memori daripada timbunan, manakala goroutine yang bertelur memperuntukkan memori daripada timbunan. Ini kerana goroutine utama bertanggungjawab untuk mengurus ingatan program, manakala goroutine bertelur tidak.
Gorutin bertelur harus digunakan apabila anda perlu melaksanakan tugas secara selari. Ini boleh berguna untuk meningkatkan prestasi atur cara anda, terutamanya apabila melaksanakan operasi I/O.
Berikut ialah beberapa contoh apabila anda mungkin menggunakan goroutin bertelur:
Contoh berikut menunjukkan cara mencipta goroutine bertelur untuk melaksanakan tugas mudah:
<code class="go">package main import ( "fmt" "runtime" ) func main() { // Create a new goroutine to print a message. go func() { fmt.Println("Hello from a goroutine!") }() // Wait for the goroutine to finish. runtime.Gosched() }</code>
Dalam contoh ini, kata kunci go digunakan untuk mencipta goroutine baharu. Goroutine kemudiannya dilaksanakan serentak dengan goroutine utama. Fungsi runtime.Gosched() digunakan untuk menunggu goroutine selesai.
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Goroutine Utama dan Telur dalam Program Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!