Rumah >pembangunan bahagian belakang >Golang >Mengapakah `input.Text()` Dinilai dalam Goroutine Utama Apabila Menggunakan Pernyataan `go`?
Dalam bab 8 Bahasa Pengaturcaraan Go, pernyataan berikut ialah dibuat tentang pelayan gema concurrency:
Argumen untuk fungsi yang dimulakan oleh go dinilai apabila pernyataan go itu sendiri dilaksanakan; oleh itu input.Text() dinilai dalam goroutine utama.
Pernyataan ini bermakna apabila pernyataan go dilaksanakan, fungsi input.Text() akan dinilai serta-merta, dan hasilnya dihantar ke go echo () goroutine. Ini berbeza dengan panggilan fungsi biasa, di mana argumen fungsi dinilai apabila fungsi dipanggil dan hasilnya dihantar ke fungsi yang dipanggil.
Sebab perbezaan ini ialah pernyataan go memulakan yang baharu goroutine, dan goroutine dilaksanakan serentak dengan goroutine utama. Jika argumen kepada fungsi yang dimulakan oleh go dinilai apabila fungsi dipanggil, goroutine utama perlu menunggu untuk fungsi selesai sebelum memulakan goroutine baharu. Ini akan menggagalkan tujuan menggunakan goroutine, iaitu untuk mendayakan konkurensi.
Dengan menilai hujah untuk fungsi yang dimulakan oleh go apabila pernyataan go itu sendiri dilaksanakan, goroutine utama tidak perlu menunggu untuk fungsi untuk melengkapkan. Ini membolehkan goroutine dimulakan serentak, iaitu tingkah laku yang diingini.
Atas ialah kandungan terperinci Mengapakah `input.Text()` Dinilai dalam Goroutine Utama Apabila Menggunakan Pernyataan `go`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!