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

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

查看所有标签

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

Beginning ASP.NET 4 in C# and Vb

Beginning ASP.NET 4 in C# and Vb

Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99

This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

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

多种字符组合密码