Go语言CAS操作(比较并交换)

先比较变量的值是否等于给定旧值,等于旧值的情况下才赋予新值,最后返回新值是否设置成功。 使用锁的做法趋于悲观 我们总假设会有并发的操作要修改被操作的值,并使用锁将相关操作放入临界区中加以保护。 使用C...
阅读全文

Go语言读写锁

RWMutex是一个读写锁,该锁可以加多个读锁或者一个写锁,其经常用于读次数远远多于写次数的场景。 func (rw *RWMutex) Lock() Lock方法将rw锁定为写入状态,禁止其他线程读...
阅读全文

go语言学习:go类型系统

go语言是静态语言,这意味着编译器需要在编译时知道变量的类型。类型提供给编译期的信息: 内存规模:编译期得知该分配多少内存 内存表示信息:内存中存放的是何物 1. 自定义类型 1.1. 用户可以使用s...
阅读全文

Go语言异常处理

Go语言没有结构化异常,使用 panic 抛出错误,recover 捕获错误。 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处...
阅读全文

Go语言学习笔记-基本类型

Golang是google开源的一种开发语言。从2009年到现在已经发布到1.9版本了,从其他资料看到在中国很火,在语言使用排行榜上上升很快。很多大厂都已经用在了自己的产品当中了,比如360,goog...
阅读全文

Go语言延迟调用

defer是Go语言提供的关键字用来调度一个函数(被延期的函数),使其在执行defer的函数即将返回之前才被运行被延期执行的函数,它的参数(包括接受者)在defer执行的时候被求值的,而不是在调用执行...
阅读全文