原文:Go语言核心36讲(Go语言实战与应用七)--学习笔记

原子操作 上 我们在前两篇文章中讨论了互斥锁 读写锁以及基于它们的条件变量,先来总结一下。 互斥锁是一个很有用的同步工具,它可以保证每一时刻进入临界区的 goroutine 只有一个。读写锁对共享资源的写操作和读操作则区别看待,并消除了读操作之间的互斥。 条件变量主要是用于协调想要访问共享资源的那些线程。当共享资源的状态发生变化时,它可以被用来通知被互斥锁阻塞的线程,它既可以基于互斥锁,也可以基 ...

2021-11-17 23:19 0 193 推荐指数:

查看详情

Go语言核心36Go语言实战应用一)--学习笔记

23 | 测试的基本规则和流程 (上) 在接下来的日子里,我将带你去学习Go 语言编程进阶的道路上,必须掌握的附加知识,比如:Go 程序测试、程序监测,以及 Go 语言标准库中各种常用代码包的正确用法。 从上个世纪到今日今时,程序员们,尤其是国内的程序员们,都对编写程序乐此不疲 ...

Thu Nov 11 07:24:00 CST 2021 0 286
Go语言核心36Go语言实战应用四)--学习笔记

26 | sync.Mutex与sync.RWMutex 从本篇文章开始,我们将一起探讨 Go 语言自带标准库中一些比较核心的代码包。这会涉及这些代码包的标准用法、使用禁忌、背后原理以及周边的知识。 既然 Go 语言是以独特的并发编程模型傲视群雄的语言,那么我们就先来学习与并发编程关系最紧 ...

Sun Nov 14 17:17:00 CST 2021 0 199
Go语言核心36Go语言实战应用八)--学习笔记

30 | 原子操作(下) 我们接着上一篇文章的内容继续聊,上一篇我们提到了,sync/atomic包中的函数可以做的原子操作有:加法(add)、比较并交换(compare and swap,简称 C ...

Fri Nov 19 06:07:00 CST 2021 0 217
Go语言核心36Go语言实战应用九)--学习笔记

31 | sync.WaitGroup和sync.Once 我们在前几次的互斥锁、条件变量和原子操作都是最基本重要的同步工具。在 Go 语言中,除了通道之外,它们也算是最为常用的并发安全工具了。 说到通道,不知道你想过没有,之前在一些场合下里,我们使用通道的方式看起来都似乎有些蹩脚 ...

Mon Nov 22 06:12:00 CST 2021 0 272
Go语言核心36Go语言实战应用十五)--学习笔记

37 | strings包与字符串操作 Go 语言不但拥有可以独立代表 Unicode 字符的类型rune,而且还有可以对字符串值进行 Unicode 字符拆分的for语句。 除此之外,标准库中的unicode包及其子包还提供了很多的函数和数据类型,可以帮助我们解析各种内容中的 Unicode ...

Sun Nov 28 05:42:00 CST 2021 0 136
Go语言核心36Go语言实战应用十六)--学习笔记

38 | bytes包与字节串操作(上) 前导内容: bytes.Buffer基础知识 strings包和bytes包可以说是一对孪生兄弟,它们在 API 方面非常的相似。单从它们提供的函数的数量和功能上,差别可以说是微乎其微。 只不过,strings包主要面向的是 Unicode 字符 ...

Mon Nov 29 06:31:00 CST 2021 0 190
Go语言核心36Go语言实战应用十七)--学习笔记

39 | bytes包与字节串操作(下) 在上一篇文章中,我们分享了bytes.Buffer中已读计数的大致功用,并围绕着这个问题做了解析,下面我们来进行相关的知识扩展。 知识扩展 问题 1:b ...

Tue Nov 30 06:17:00 CST 2021 0 227
Go语言核心36Go语言实战应用十一)--学习笔记

33 | 临时对象池sync.Pool 到目前为止,我们已经一起学习Go 语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁、读写锁、条件变量和原子操作,以及 Go 语言特有的几个同步工具: 1、sync/atomic.Value 2、sync.Once ...

Wed Nov 24 03:32:00 CST 2021 0 764
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM