实例

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的应用相关推荐

  1. go语言os.exit(1)_Go语言os包用法简述

    os标准包,是一个比较重要的包,顾名思义,主要是在服务器上进行系统的基本操作,如文件操作,目录操作,执行命令,信号与中断,进程,系统状态等等.在os包下,有exec,signal,user三个子包. ...

  2. go语言开发环境搭建_GO语言开发环境搭建

    go语言支持以下系统 1.Linux 2.FreeBSD 3.Mac OS X(也称为 Darwin) 4.Windows 本文以Linux系统进行展开 安装包下载地址: https://golang ...

  3. go语言支持继承吗_Go语言的结构体嵌入为什么不算继承?

    今日端午节,又是高考.祝大家节日快乐,祝考生考出好成绩,大家开车请勿鸣笛! 面向对象的设计思想,是根据现实世界进行抽象得出的一套理论.既然是现实世界的抽象,继承的本质是有"父子"关 ...

  4. Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用

    实例 package mainimport("fmt""os""os/signal""sync""syscal ...

  5. go语言os.exit(1)_在Golang中各种永远阻塞的姿势

    在Golang中各种永远阻塞的姿势 Go的运行时的当前设计,假定程序员自己负责检测何时终止一个goroutine以及何时终止该程序. 可以通过调用os.Exit或从main()函数的返回来以正常方式终 ...

  6. go var type 互转_Go语言学习笔记(第九章) 结构体

    Go语言基础之结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go 通过类型别名(alias types)和结构体的形式支持用户自定义 ...

  7. C语言 exit 函数 - C语言零基础入门教程

    目录 一.exit 函数简介 二.exit 函数使用 三.exit 函数和 return 区别 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础 ...

  8. sha256算法_Go语言实现Pow共识算法

    作者: 张详,闫思 来源: IDCU PoW呢...Proof of Work ,工作量证明机制,可能这个名字大家不熟悉,说比特币的话,大家就熟悉了.没错,PoW就是比特币所使用的共识机制. 通过计算 ...

  9. go语言视频教程_ go语言入门视频教程_go语言实战视频教程

    许多人可能知道go语言的优点在哪里,但他们不知道go语言适合在哪里使用.通过学习go语言视频教程,可以清楚的知道go语言主要用于服务器端开发,其定位是用来开发"大型软件".学习go ...

最新文章

  1. nagios 使用MSN 发报警消息
  2. java合并整形_java中2个int合并成一个long
  3. GPAC MP4文件写入(支持H264、H265)
  4. 【MM模块】Vendor Consignment 供应商寄售
  5. eclipse里没有project facets
  6. Linux IP 配置
  7. 计算机d盘给c盘,win10 c盘与d盘都是主分区如何将d盘空间分给c盘
  8. html:(11):address和code标签
  9. python上下键不能用_python退格、方向键无法正常使用解决方法
  10. JSP实例-定时刷新页面
  11. Joe一款个人博客typecho主题(扩展版)
  12. VS2008中的一些命令窗口
  13. easyMule-VeryCD-src---VS2010调试笔记
  14. php版的求表达式的真值表-TrueValueTable
  15. 计算机软件税负率,2015最新增值税税负对照表
  16. 熟悉matlab工作环境实验报告,MATLAB上机实验实验报告
  17. 抖音运营攻略大全,新手主播必知干货丨国仁网络
  18. 【信息系统项目管理师】第十二章 项目采购管理思维导图
  19. iOS开发中如何理解“iPhone X不支持指纹”
  20. 如何将word自带的公式快速转为latex?

热门文章

  1. 弹性架构_实践中的弹性基础架构
  2. 为什么非阻塞io性能更好_提高性能:流的非阻塞处理
  3. 序列化和反序列化的概念_序列化的概念
  4. 制作程序化装饰花纹图案_装饰图案
  5. Java机器学习,第2部分
  6. Java中Long到Int的精确转换
  7. 设计模式 工厂方法_工厂设计模式–一种有效的方法
  8. 过滤器匹配符包含单词_Hamcrest包含匹配器
  9. 只有经验丰富的开发人员才能教您有关Java的5件事
  10. 生产Java应用程序中的十大异常类型-基于1B事件