一个信号量与定时器的例子(Golang)
来源:互联网 发布:windows默认字体包 编辑:程序博客网 时间:2024/06/06 02:05
程序可用来定时执行一些任务,并通过信号量处理,在被强制中断时,也能做相应警告及清理处理.
package main//信号量与定时器//author: Xiong Chuan Liang//date: 2015-2-25import "fmt"import "os"import "os/signal"import "time"func main() {sigs := make(chan os.Signal, 1)done := make(chan bool, 1)signal.Notify(sigs, os.Interrupt, os.Kill)go func() {sig := <-sigsswitch sig {case os.Interrupt:fmt.Println("signal: Interrupt")case os.Kill:fmt.Println("signal: Kill")default:fmt.Println("signal: Others")}done <- true}()fmt.Println("awaiting signal")//main()....go JobTicker(done)<-doneclose(done)//app.Exit()fmt.Println("exiting")}func JobTicker(done <-chan bool) {ticker := time.NewTicker(time.Second)defer ticker.Stop()for {select {case <-done:returncase <-ticker.C:fmt.Println("job......")}}}
如果按 ctrl-C 则结果如下:
awaiting signaljob......job......signal: Interruptinterruptexiting
Go by Example: Signals: https://gobyexample.com/signals
MAIL: xcl_168@aliyun.com
Blog: http://blog.csdn.net/xcl168
0 0
- 一个信号量与定时器的例子(Golang)
- vxworks信号量与任务的一个例子
- 一个信号量的例子
- 时钟、定时器的一个例子
- 一个简单的信号量的例子
- golang,使用类型断言的一个例子
- 一个简单的Java信号量例子
- 一个线程和信号量的例子
- 定时器的配置与例子
- ucos任务与信号量的例子
- 一个使用多媒体定时器的简单例子
- 定时器实现动画的一个例子
- 二元信号量一个小例子
- 一个java和golang(go语言)通信的例子。
- golang websocket的例子
- 一个包含了信号、信号量、共享内存的例子
- linux下对信号量测试的一个简单例子
- Golang 实现简单的定时器
- 工作杂谈:春节后的第一天班
- ODPS技术架构及应用实践
- c++ 泛型编程 之 自动生成代码
- 懒加载异常的解决办法
- iOS判断UIView是否显示在屏幕上
- 一个信号量与定时器的例子(Golang)
- webUI——jBox快速入门
- html+css实现3D旋转图片展示
- Android自定义ListView实现上滑分页
- 【基础篇系列5】java核心(二)
- C#中的委托和事件
- C Language Study - a dangerous function - getchar()
- HDU 2829 Lawrence 斜率优化DP
- MySQL数据库诊断:InnoDB关机问题