当前位置: 首页 > 网络应用技术

分析Golang中相互锁的分析以解决并发安全性问题(代码示例)

时间:2023-03-06 14:08:07 网络应用技术

  今天让我们谈谈锁。我们都知道有同时存在的安全问题。无法同时访问一些变量。例如,银行的访问业务,如果可以同时支付,您认为您认为本月的薪水为200万薪水,您的妻子会接受银行在银行同时制作美的200万人。如果您不使用锁,您会发现保存后的金额没有变化,您的妻子发现拿钱后的钱没有改变。你很慌张,你的妻子不开心.........

  因此,我们需要在这里使用锁。当一个人访问此业务时,将其添加到它,而其他人无法访问它。

  看看这个省钱的例子:

  这个示例是,每个人为您支付100元人民币。这一百美元节省了数百美元。存款后我们有3,000元人民币。

  让我们看一下结果:

  看来没关系!让我们增加存款金额。让10个人节省1,000,这千美元将存入一千次,以便我们获得12,000元人民币。让我们看一下操作的结果!

  与我们预期的不同吗?

  这是并发安全的问题。

  我们不应允许汇编访问。

  然后,让我们看看如何使用相互锁解决此类问题!

  此过程的重要性是两个圆环正在同时锁定。如果跳舞的Coroutine首先抓住了锁,Buda开始跳舞,然后跳舞解锁,偷窃公司开始抓住锁,然后Buda结束了跳舞并开始偷窃。先偷走然后跳舞。

  运行结果:

  我们可以看到布达将球扔进跳舞。这是锁的荣誉,因此布达在跳舞时不会厌倦偷窃。

  作者:Reganyue