北漂程序员知识点积累分享
当前位置: go > Go语言的goroutine

Go语言的goroutine

2019-12-16 分类:go 作者:北漂程序员 阅读(241)

Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,使用关键字go来定义并启动一个goroutine

1
2
3
golang的线程是一种并发机制,而不是并行

在golang里面,使用Go这个关键字,后面再跟上一个函数就可以创建一个线程。后面的这个函数可以是已经写好的函数,也可以是一个匿名函数

channel

1
2
3
4
5
6
7
8
9
10
11
12
通道又叫channel,顾名思义,channel的作用就是在多线程之间传递数据的。

创建无缓冲channel
chreadandwrite :=make(chan int)

//创建只读channel
chonlyread := make(<-chan int)

//创建只写channel
chonlywrite := make(chan<- int)

channel的机制是先进先出,如果你给channel赋值了,那么必须要读取它的值,不然就会造成阻塞,当然这个只对无缓冲的channel有效。对于有缓冲的channel,发送方会一直阻塞直到数据被拷贝到缓冲区;如果缓冲区已满,则发送方只能在接收方取走数据后才能从阻塞状态恢复。

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

谢谢支持

支付宝
微信
0

谢谢支持

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 条评论 - Go语言的goroutine

博客简介

北漂程序员的生活积累

最近更新

精彩评论

服务热线:
 

 QQ在线交流