go语言os.exit(1)_Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用
实例
package main
import(
"fmt"
"os"
"os/signal"
"sync"
"syscall"
"time"
)
func worker(stop
for {
select {
case
fmt.Println("exit")
return
default:
fmt.Println("running...")
time.Sleep(3)
}
}
}
func main() {
stop := make(chan bool)
var wg sync.WaitGroup
for i := 0; i < 3; i++ {
wg.Add(1)
go func(stop
defer wg.Done()
worker(stop)
}(stop)
}
waitForSignal()
close(stop)
fmt.Println("stopping all job")
wg.Wait()
}
func waitForSignal() {
sigs := make(chan os.Signal)
signal.Notify(sigs, os.Interrupt)
signal.Notify(sigs, syscall.SIGTERM)
fmt.Println(
}
运行结果
pkill信号syscall.SIGTERM
...
running...
running...
running...
running...
terminated
running...
running...
stopping all job
exit
exit
exit
或者ctrl+c信号os.Interrupt
running...
interrupt
stopping all job
running...
exit
exit
exit
go语言os.exit(1)_Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用相关推荐
- go语言os.exit(1)_Go语言os包用法简述
os标准包,是一个比较重要的包,顾名思义,主要是在服务器上进行系统的基本操作,如文件操作,目录操作,执行命令,信号与中断,进程,系统状态等等.在os包下,有exec,signal,user三个子包. ...
- go语言开发环境搭建_GO语言开发环境搭建
go语言支持以下系统 1.Linux 2.FreeBSD 3.Mac OS X(也称为 Darwin) 4.Windows 本文以Linux系统进行展开 安装包下载地址: https://golang ...
- go语言支持继承吗_Go语言的结构体嵌入为什么不算继承?
今日端午节,又是高考.祝大家节日快乐,祝考生考出好成绩,大家开车请勿鸣笛! 面向对象的设计思想,是根据现实世界进行抽象得出的一套理论.既然是现实世界的抽象,继承的本质是有"父子"关 ...
- Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用
实例 package mainimport("fmt""os""os/signal""sync""syscal ...
- go语言os.exit(1)_在Golang中各种永远阻塞的姿势
在Golang中各种永远阻塞的姿势 Go的运行时的当前设计,假定程序员自己负责检测何时终止一个goroutine以及何时终止该程序. 可以通过调用os.Exit或从main()函数的返回来以正常方式终 ...
- go var type 互转_Go语言学习笔记(第九章) 结构体
Go语言基础之结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go 通过类型别名(alias types)和结构体的形式支持用户自定义 ...
- C语言 exit 函数 - C语言零基础入门教程
目录 一.exit 函数简介 二.exit 函数使用 三.exit 函数和 return 区别 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础 ...
- sha256算法_Go语言实现Pow共识算法
作者: 张详,闫思 来源: IDCU PoW呢...Proof of Work ,工作量证明机制,可能这个名字大家不熟悉,说比特币的话,大家就熟悉了.没错,PoW就是比特币所使用的共识机制. 通过计算 ...
- go语言视频教程_ go语言入门视频教程_go语言实战视频教程
许多人可能知道go语言的优点在哪里,但他们不知道go语言适合在哪里使用.通过学习go语言视频教程,可以清楚的知道go语言主要用于服务器端开发,其定位是用来开发"大型软件".学习go ...
最新文章
- nagios 使用MSN 发报警消息
- java合并整形_java中2个int合并成一个long
- GPAC MP4文件写入(支持H264、H265)
- 【MM模块】Vendor Consignment 供应商寄售
- eclipse里没有project facets
- Linux IP 配置
- 计算机d盘给c盘,win10 c盘与d盘都是主分区如何将d盘空间分给c盘
- html:(11):address和code标签
- python上下键不能用_python退格、方向键无法正常使用解决方法
- JSP实例-定时刷新页面
- Joe一款个人博客typecho主题(扩展版)
- VS2008中的一些命令窗口
- easyMule-VeryCD-src---VS2010调试笔记
- php版的求表达式的真值表-TrueValueTable
- 计算机软件税负率,2015最新增值税税负对照表
- 熟悉matlab工作环境实验报告,MATLAB上机实验实验报告
- 抖音运营攻略大全,新手主播必知干货丨国仁网络
- 【信息系统项目管理师】第十二章 项目采购管理思维导图
- iOS开发中如何理解“iPhone X不支持指纹”
- 如何将word自带的公式快速转为latex?