文档章节

TODO:Go语言goroutine和channel使用

OneTODO
 OneTODO
发布于 2016/11/22 21:20
字数 287
阅读 53
收藏 0

TODO:Go语言goroutine和channel使用

goroutine是Go语言中的轻量级线程实现,由Go语言运行时(runtime)管理。使用的时候在函数前面加“go”这个单词作为关键词,也是与普通函数的区别了。在函数前面加go关键字就可以创建一个新的goroutine进行并发执行。

go hello()

channel是Go语言提供的goroutine间的通信方式,我们可以使用channel在两个或多个goroutine之家传递消息。channel使用的关键字是用“chan”,声明一个传递类型为int的channel:

var ch chan int

下面小编举一个例子,监听进程被关闭后触发的事件。

监听信号,使用

signal.Notify(c, os.Interrupt)

第一个参数表示接收信号的channel

第二个及后面的参数表示设置要监听的信号,如果不设置表示监听所有的信号。

完整例子如下,本例在Ubuntu14.04的服务版测试通过。

Ctrl+c的效果如图:

Kill进程的效果如图

简单的例子,希望对您有帮助。

wxgzh:ludong86

© 著作权归作者所有

共有 人打赏支持
OneTODO
粉丝 1
博文 63
码字总数 26450
作品 0
厦门
程序员
Go语言-Context上下文实践

使用 Context 的程序包需要遵循如下的原则来满足接口的一致性以及便于静态分析 1.不要把 Context 存在一个结构体当中,显式地传入函数。Context 变量需要作为第一个参数使用,一般命名为ctx...

二郎神六号
06/19
0
0
Go语言_并发篇

当被问到为什么用Go语言,一定不得不提的是Go语言的并发程序编写。在C语言中编写非常繁琐复杂的并发程序在Go语言中总是显得如此便捷。 Go中并发程序依靠的是两个:goroutine和channel 理解什...

晨曦之光
2012/06/07
1K
1
Go语言_并发篇

当被问到为什么用Go语言,一定不得不提的是Go语言的并发程序编写。在C语言中编写非常繁琐复杂的并发程序在Go语言中总是显得如此便捷。 Go中并发程序依靠的是两个:goroutine和channel 理解什...

王二狗子11
01/08
0
0
Go语言学习笔记(七)杀手锏 Goroutine + Channel

Goroutine Go语言的主要的功能在于令人简易使用的并行设计,这个方法叫做Goroutine,通过Goroutine能够让你的程序以异步的方式运行,而不需要担心一个函数导致程序中断,因此Go语言也非常地适...

wangxuwei
01/29
0
0
Go channel 一

Go channel 一 如果说goroutine是Go语言程序的并发单元的话,那么channels它们之间的通信机制。一个channels是一个通信机制,它可以让一个goroutine通过它给另一个goroutine发送值信息。每个...

秋风醉了
2016/07/15
29
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
33分钟前
3
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
37分钟前
4
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
47分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
48分钟前
4
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
51分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部