如此处所述:大小为 1 的缓冲通道可以为您提供一次延迟发送保证
在下面的代码中:
package main
import (
"fmt"
"time"
)
func display(ch chan int) {
time.Sleep(5 * time.Second)
fmt.Println(<-ch) // Receiving data
}
func main() {
ch := make(chan int, 1) // Buffered channel - Send happens before receive
go display(ch)
fmt.Printf("Current Unix Time: %v\n", time.Now().Unix())
ch <- 1 // Sending data
fmt.Printf("Data sent at: %v\n", time.Now().Unix())
}
输出:
Current Unix Time: 1610599724
Data sent at: 1610599724
如果上述代码中没有显示数据,大小为1的缓冲通道是否保证数据的接收?
如果收到数据,如何验证?display()
慕森王
相关分类