区块链弹药库 — 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

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

查看所有标签

猜你喜欢:

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

集体智慧编程

集体智慧编程

TOBY SEGARAN / 莫映、王开福 / 电子工业出版社 / 2009-1 / 59.80元

本书以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈信息,以便创造新的用户价值和商业价值。全书内容翔实,包括协作过滤技术(实现关联产品推荐功能)、集群数据分析(在大规模数据集中发掘相似的数据子集)、搜索引擎核心技术(爬虫、索引、查询引擎、Page......一起来看看 《集体智慧编程》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具