首页 > 代码库 > go语言中os/signal包的学习与使用
go语言中os/signal包的学习与使用
package main;import ( "os" "os/signal" "fmt")//signal包中提供了两个函数//Notifyf()用于监听信号//Stop()用于停止监听func main() { ch := make(chan os.Signal); //notify用于监听信号 //参数1表示接收信号的channel //参数2及后面的表示要监听的信号 //os.Interrupt 表示中断 //os.Kill 杀死退出进程 signal.Notify(ch, os.Interrupt, os.Kill); //获取信号,如果没有会一直阻塞在这里。 s := <-ch; //我们通过Ctrl+C或用taskkill /pid -t -f来杀死进程,查看效果。 fmt.Println("信号:", s);}
package main;import ( "os" "os/signal" "fmt")func main() { ch := make(chan os.Signal); //如果不指定要监听的信号,那么默认是所有信号 signal.Notify(ch); //停止向ch转发信号,ch将不再收到任何信号 signal.Stop(ch); //ch将一直阻塞在这里,因为它将收不到任何信号 //所以下面的exit输出也无法执行 <-ch; fmt.Println("exit");}
go语言中os/signal包的学习与使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。