hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 文章 - 后端开发 - 正文 看Cosplay古风插画小姐姐,合集图集打包下载:炫龙网 · 炫龙图库

golang 怎样并发_后端开发

2019-12-31后端开发ki4网21°c
A+ A-

Go的CSP并发模子

Go完成了两种并发情势。第一种是人人广泛认知的:多线程同享内存。实在就是Java或许C++等言语中的多线程开发。

别的一种是Go言语特有的,也是Go言语引荐的:CSP(communicating sequential processes)并发模子。 (引荐进修:go)

CSP并发模子是在1970年摆布提出的观点,属于比较新的观点,不同于传统的多线程经由过程同享内存来通讯,CSP考究的是“以通讯的体式格局来同享内存”。

请记着下面这句话:

Do not communicate by sharing memory; instead, share memory by communicating.
“不要以同享内存的体式格局来通讯,相反,要经由过程通讯来同享内存。”

一般的线程并发模子,就是像Java、C++、或许Python,他们线程间通讯都是经由过程同享内存的体式格局来举行的。

异常典范的体式格局就是,在访问同享数据(比方数组、Map、或许某个构造体或对象)的时刻,经由过程锁来访问,因而,在许多时刻,衍生出一种轻易操纵的数据构造,叫做“线程平安的数据构造”。

比方Java供应的包”java.util.concurrent”中的数据构造。Go中也完成了传统的线程并发模子。

Go的CSP并发模子,是经由过程goroutine和channel来完成的。

goroutine 是Go言语中并发的实行单元。有点笼统,实在就是和传统观点上的”线程“相似,能够理解为”线程“。

channel是Go言语中各个并发构造体(goroutine)之前的通讯机制。 浅显的讲,就是各个goroutine之间通讯的”管道“,有点相似于Linux中的管道。

生成一个goroutine的体式格局异常的简朴:Go一下,就生成了。

go f();

通讯机制channel也很轻易,传数据用channel <- data,取数据用<-channel。

在通讯过程当中,传数据channel <- data和取数据<-channel必然会成对涌现,由于这边传,那里取,两个goroutine之间才会完成通讯。

而且不论传照样取,必壅塞,直到别的的goroutine传或许取为止。

有两个goroutine,个中一个发起了向channel中发起了传值操纵。(goroutine为矩形,channel为箭头)

以上就是golang 怎样并发的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
golang 怎样并发_后端开发

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>