go通过共享变量实现并发

本文探讨如何在Go语言中利用通道和共享变量实现并发安全的通信。通过创建一个写通道用于更新变量,一个读通道用于读取,以及一个专门的协程协调这两个通道,确保数据一致性。虽然通常推荐使用通道进行协程间通信,但在特定场景下,这种共享变量的方法也能提供解决方案。此外,这种方法还可以扩展到构建并发数据结构,如锁等。
摘要由CSDN通过智能技术生成

协程之间的通信只能够通过通道。但是我们习惯于共享变量,而且很多时候使用共享变量能让代码更简洁。比如一个Server有两个状态开和关。其他仅仅希望获取或改变其状态,那又该如何做呢。可以将这个变量至于0通道中,并使用一个协程来维护。

下面的例子描述如何用这个方式,实现一个共享变量。

//共享变量有一个读通道和一个写通道组成
type sharded_var struct {
    reader chan int
    writer chan int
}
 
//共享变量维护协程
func sharded_var_whachdog(v sharded_var) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值