golang的channel介紹

功能:

channel 是 Goroutine 之間的通訊機制,用於傳遞數據。

可以是無緩衝或有緩衝的。


宣告與初始化:

ch := make(chan int)      // 無緩衝 channel

chBuffered := make(chan int, 5) // 有緩衝 channel,大小為 5


基本操作:


import (

"fmt"

"time"

)


func main() {

ch := make(chan int)


// Goroutine

go func() {

fmt.Println("Sending data...")

ch <- 42 // 傳送數據到 channel

}()


fmt.Println("Receiving data...")

val := <-ch // 從 channel 接收數據

fmt.Println("Received:", val)

}



緩衝 channel 範例:


func main() {

ch := make(chan int, 2)


// 傳送數據

ch <- 1

ch <- 2


// 接收數據

fmt.Println(<-ch)

fmt.Println(<-ch)

}


留言

這個網誌中的熱門文章

[Kotlin]如何學習Kotlin

[golang]如何使用 gorm 高效執行批量插入 (可以透過 Create()、CreateInBatches(),或者 原生 SQL 語句 來提升效率)

[Kotlin]Kotlin Multiplatform (KMP) 如何安裝使用和部署