os.Signal信号量

signalCh := make(chan os.Signal, 1)创建了一个类型为 os.Signal 的带缓冲通道

  • chan os.Signal 表示这是一个用于传递系统信号的通道
  • 缓冲区大小为 1,这意味着通道可以存储一个信号而不阻塞发送方

通道通常用于接收操作系统发送给程序的信号,比如:

  • SIGINT (Ctrl+C)
  • SIGTERM (终止信号)
  • SIGUSR1/SIGUSR2 (用户自定义信号)等

用法:

// 1. 创建信号通道
signalCh := make(chan os.Signal, 1)

// 2. 注册要监听的信号
signal.Notify(signalCh, os.SIGINT, syscall.SIGTERM)

// 3. 在 goroutine 中等待信号
go func() {
  // 程序会在此处阻塞,直到接收到信号 sig :
= <-signalCh // 处理接收到的信号 fmt.Printf("Received signal: %v\n", sig) }()

 

posted @ 2025-09-09 11:20  使用D  阅读(7)  评论(0)    收藏  举报