Golang语言(Go)是数字货币应用程序开发的好选择吗?当处理货币时,尤其是处理涉及大量交易的大量货币时,这等于大量的处理能力。您知道多少个大型银行只有一个柜员(处理实物交易的自然人)?
1.Golang和并发编程
大多数语言在Golang之前都添加了并发开发和Unicode。Golang是在Unicode成为标准之后开发的,在大型政府机构之外处理大量数据并不意外。结果是这些功能从一开始就被纳入语言规范中,并且通过这些功能的易用性得以展示。Golang是工作的荣幸。
在C/C++程序中,有一个非常大的程序在一个非常大的计算机进程中运行。想象一个实物银行出纳员按顺序处理给定一天中Slotocash赌场进行的每笔金融交易的过程,先完成上一个交易,然后再开始下一个交易。
2.Golang的频道
通道为两个Goroutine提供了一种相互通信并同步其动作的方式。想象两个银行柜员并排工作。一种是处理借方,另一种是处理贷方。在美国,法律要求银行在处理借方之前先处理贷方。如果一个银行帐户在给定的日期既有借方又有贷方,则两个柜员将需要彼此通信。
但是,如果一个银行帐户只有借方或只有贷方,那么两个柜员可以并排工作,而不会干扰另一个柜员的工作。Goroutines(并发的Go函数)也是如此。
3.Golang中的频道方向
通道处理从一个goroutine到另一goroutine的消息通信。让我们看一下我们之前处理两个贷方和借方的银行柜员的示例。对于既有贷方又有借方的帐户,“贷方出纳员”必须首先处理贷方交易,然后“借方出纳员”然后要处理借方交易。
“借方出纳员”必须知道“贷方出纳员”已完成,然后才能启动“贷方出纳员”。但是“出纳员”甚至不需要知道甚至有任何借记交易,更不用说在借记交易开始之前是否完成了借记交易。换句话说,“信贷柜员”和“借方柜员”之间的通信从“信贷柜员”到“借方柜员”是一个方向。
4.在Golang中选择
Select语句在其他编程语言中不存在。Select语句是专门用于处理通道的switch语句。假设我们的银行柜员示例中有第三名员工,称为“印刷柜员”。“打印柜员”的工作是打印出交给客户的收据。帐户准备好后,“出纳员”会打印出文件。
如果“贷方”的客户有1000笔信用交易,而“借方”的100位客户每笔交易少于5次,那么“借方”将比“贷方”处理更多的客户,即使他们都在处理相同数量的实际个人交易。让99个“借记柜员”客户等待1个“贷记柜员”客户完成将是非常不公平的。公平地说,“打印出纳员”的队列与“贷记出纳员”或“借方出纳员”的队列不同。“出纳员”唯一关心的是客户的帐户是否已完成并且该帐户已准备好进行打印。