Go面向并发的内存模型

本文探讨了Go语言在多核时代的并发内存模型,包括什么是内存模型、内存模型的类型。深入讲解了Goroutine,这是一种轻量级线程,具有动态伸缩栈的特性。此外,还介绍了在并发情况下解决共享资源竞争问题的原子操作,如加锁和sync/atomic包。最后,讨论了如何在Go中实现顺序一致性内存模型,包括for阻塞、加锁、通道和sync.WaitGroup的使用。
摘要由CSDN通过智能技术生成

点击链接查看我的个人博客,文章更全更详细

1.闲聊

在远古时期cpu都是以单核的形式执行机器的指令。随着科技和时代的进步,单核无法满足人类日益贪婪的需求,于是多核cpu应用而生。编程语言也不甘示弱,开始利用多核cpu的优势逐渐走向了并行的方向。

Go语言在出生的时候,就已经是多核时代的天下了。于是那群牛逼的Go语言之父呢,就结合了多门语言的特性,创造了Go语言自身的并发机制。这也是为什么Go语言有着“天生高并发“的称号。

2.内存模型

2.1 什么是内存模型

在多核多线程的背景下,多个不同的cpu是如何以一种统一的形式来与内存进行交互的。

2.2 内存模型有哪些?

多线程、消息传递、顺序一致性内存模型等

3. 回归

这篇文章是写Go的并发的内存模型,不讲其他的(因为也不懂)

聊Go的并发离不开Goroutine。

4. 什么是Goroutine

Goroutine是go语言独有的并发体。名字叫协程,其实就是一种轻量级的线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳上的雨天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值