1. 首页
  2. 编程语言
  3. 其他
  4. golang 中signal包的Notify用法说明

golang 中signal包的Notify用法说明

上传者: 2021-06-12 18:08:49上传 PDF文件 67.14 KB 热度 9次

如果没有列出要传递的信号,会将所有输入信号传递到c;否则只传递列出的输入信号。signal包不会为了向c发送信息而阻塞:调用者应该保证c有足够的缓存空间可以跟上期望的信号频率。上面一段代码是 signal.Notify 的事例代码,注释说:我们得使用带缓冲 channel否则,发送信号时我们还没有准备好接收,就有丢失信号的风险我一直没理解这段注释,于是翻看源码 $GOROOT/src/os/signal/signal.go,有这样一段代码,并注释有“发送但不阻塞”。这就是 signal.Notify 使用带缓存 channel 的作用。

用户评论