区块链弹药库 — golang

栏目: Go · 发布时间: 7年前

内容简介:golang 悄悄走进的区块链 为服务器端大并发场景设计。国内都谁在用 golang 呢?不用说 google ,人家推出的 golang 就是为了用和解决他面临的问题。google 在 Youtube、Google 的下载站点项目都用到了 golang。转向国内来看

golang 悄悄走进的区块链 为服务器端大并发场景设计。国内都谁在用 golang 呢?

不用说 google ,人家推出的 golang 就是为了用和解决他面临的问题。google 在 Youtube、Google 的下载站点项目都用到了 golang。

区块链弹药库 — golang

转向国内来看

B:百度的部分流量前端已经是 golang 开发的了,现在日均分发流量千亿。

A:阿里具体应用到什么项目,没查看,如果了解请补充。支付宝好像在用 java,估计怕 golang 有漏洞吧,而且。

T:微信里面有用golang啊,腾讯也有很多部门用 golang。

中小创业的项目都会首选 java 和 golang 来开发。

区块链弹药库 — golang

如果想搞区块链,golang 也是应该掌握的一门语言。

区块链弹药库 — golang

说了很多 golang 的重要性,今天就介绍 golang 和核心—并发开始吧。golang很容易上手,如果对coroutine 这些概念熟悉的话,看几天就会了,翻译为协程,这是一个很重要的概念,很多现代需要都有对协程的实现。

如果不是我对真正并行的线程的追求,就不会认识到 Go 有多么的迷人。Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用 Thread库 来新建线程,还要用线程安全的队列库来共享数据。线程的成本很高,而且是有瓶颈的。

好上代码,正常程序是按一定顺序执行代码。

区块链弹药库 — golang
区块链弹药库 — golang

这种并发模式的内核只需要协程和通道就够了。协程负责执行代码,通道负责在协程之间传递事件。我们需要让 foo 和 bar 在协程中执行,这是由于如果通过线程来做并发是十分困难,并且成本很高。我将函数放在协程中执行,很简单,只需要在函数名前加上 go 即可。

区块链弹药库 — golang

执行代码,返现终端没有任何输出,只是因为现在程序分别跑在 3个协程,由于 main 协程执行 go foo 和 go bar 后就立即终止当掉了。所以我们看不到其他两个协程中执行的结果。

区块链弹药库 — golang

golang 中的 sync 包提供了 WaitGroup 。能够一直等到所有的 goroutine (协程)执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。

区块链弹药库 — golang
区块链弹药库 — golang
区块链弹药库 — golang
区块链弹药库 — golang

我们让两个 gorutine 更新一个变量 counter。我们需要 counter 有序增长。

区块链弹药库 — golang

这显然不是我们想要的结果。

区块链弹药库 — golang

使用 sync 包提供的 Mutex,我们可以将 counter 锁到gorutine 中,其他 goruntine 无法修改以达到目标。

区块链弹药库 — golang
区块链弹药库 — golang

我们调用 sync/atomic中的几个函数可以对几种简单的类型进行原子操作。这些类型包括int32,int64,uint32,uint64,uintptr,unsafe.Pointer,共6个。这些函数的原子操作共有5种:增或减,比较并交换、载入、存储和交换它们提供了不同的功能,切使用的场景也有区别。

区块链弹药库 — golang
区块链弹药库 — golang
区块链弹药库 — golang

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SOA & Web 2.0 -- 新商业语言

SOA & Web 2.0 -- 新商业语言

(美)Sandy Carter / 袁月杨、麻丽莉 / 清华大学出版社 / 2007 / 29.80元

在《SOA&Web 2.0:新商业语言》中,Sandy Calter示范了将企业解构为“组件化”业务模式的方法,然后用相互连接的、可重复的并且能快速、轻松、经济地适应各种变化的IT服务来支持该模式。这些技术将帮助IT专家和业务经理达到崭新的运营水平,以开展着眼于市场的创新,这才是最重要的。总而言之,企业必须实现灵活应对。直到最近,技术都一直阻碍着这些目标的实现。正是由于面向服务架构(SOA)、We......一起来看看 《SOA & Web 2.0 -- 新商业语言》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具