Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine?
Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine? Gunakan fungsi buat untuk mencipta saluran tidak buffer. Gunakan operator bbe1566b1d967d4923c43baabee59c4f untuk menerima mesej.
Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine?
Pengenalan
Goroutine dalam Go ialah primitif serentak ringan yang boleh digunakan untuk mencipta kod pelaksanaan selari. Baris gilir mesej ialah mekanisme komunikasi yang membolehkan Goroutines menghantar dan menerima mesej secara tidak segerak. Tutorial ini akan memperkenalkan cara menggunakan saluran untuk melaksanakan baris gilir mesej dalam Go dan menyediakan kes praktikal.
Melaksanakan baris gilir mesej
Saluran dalam Go ialah paip komunikasi dua hala yang boleh digunakan untuk memindahkan nilai antara Goroutines. Untuk membuat saluran, gunakan fungsi make
. Contohnya: make
函数。例如:
ch := make(chan int)
此代码创建一个无缓冲 channel,这意味着它一次只能容纳一个值。
发送消息
要发送消息,请使用 channel 的 e82c93edb03ae9fc363714375d82ea49
操作符。例如:
msg := <-ch
此代码将从 channel 接收一个值并将其存储在 msg
package main import "time" func main() { ch := make(chan int) go func() { for i := 0; i < 10; i++ { ch <- i time.Sleep(time.Second) } close(ch) }() }Kod ini mencipta saluran tidak buffer, bermakna ia hanya boleh menyimpan satu nilai pada satu masa.
Hantar mesej
Untuk menghantar mesej, gunakan operatord4dd1a5a2c8a135c52534338672e0d12
saluran. Contohnya: rrreee
Kod ini akan menerima nilai daripada saluran dan menyimpannya dalam pembolehubahmsg
. 🎜🎜🎜Kes Praktikal🎜🎜🎜Mari kita cipta aplikasi pengeluar-pengguna yang mudah, di mana pengeluar Goroutine akan menghantar mesej, dan pengguna Goroutine akan menerima dan memproses mesej ini. 🎜🎜🎜Kod pengeluar🎜🎜rrreee🎜🎜Kod pengguna🎜🎜rrreee🎜Dalam contoh ini, pengeluar menghantar satu mesej ke saluran setiap saat, dan pengguna menerima dan memproses mesej ini daripada saluran pada kekerapan yang sama . 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!