Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine?

Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine?

WBOY
WBOYasal
2024-06-01 13:50:57558semak imbas

Bagaimana untuk melaksanakan baris gilir mesej dalam Goroutine? Gunakan fungsi buat untuk mencipta saluran tidak buffer. Gunakan operator bbe1566b1d967d4923c43baabee59c4f untuk menerima mesej.

如何在 Goroutine 中实现消息队列?

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 operator d4dd1a5a2c8a135c52534338672e0d12 saluran. Contohnya:

rrreee

Kod ini akan menerima nilai daripada saluran dan menyimpannya dalam pembolehubah msg. 🎜🎜🎜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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn