
Go
Pennhhe
对时间有耐心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mutex 四大易错场景
Mutex 四大易错场景 1. Lock / Unlock 没有成对出现 func foo(){ var mu sync.Mutex defer mu.Unlock() fmt.Println("hello World!") } 2. Copy 已经使用的Mutex Mutex 是一个有状态的变量,复制了一个已经加锁的变量的话, 新的变量其实已经加锁了。 package main import ( "fmt" "sync" ) type Counter struct { sync.M原创 2020-12-23 17:24:02 · 641 阅读 · 0 评论 -
Mutex 的使用
Mutex 的使用 1. 互斥锁的实现机制 1.1 临界区 为了避免并发访问导致的意外,被保护起来的程序叫做临界区。 1.2 互斥锁 保证临界区只能同时被一个线程持有。 1.3 互斥锁的原理 临界区被一个线程持有的时候,其他想进入临界区的线程会返回失败,或者等待。直到持有的线程退出临界区。 1.4 同步元语的使用场景 共享资源。并发地读写共享资源。 任务编排。互相等待或有依赖的线程。 消息传递。不同线程之间传递消息。 2. Mutex 的基本使用方法 2.1 示例代码 package main原创 2020-12-23 17:18:14 · 822 阅读 · 0 评论 -
Go 语言从入门到精通
Go 语言从入门到精通 Go 语言是一门开源语言,能够轻松的构建简单,可靠,高效的软件。 —— Golang 在很多语言中,解决给定的问题通常有多种方式。工程师需要花费大量的时间思考什么才是解决问题的最优解法。而在Golang中,问题的解法通常只有一种。 这一特性大大节约了工程师的时间,而且使得维护大型代码库变得更容易。在Golang中没有maps和filter这样高消耗的特性。 语言的特性...翻译 2019-07-16 17:11:00 · 1504 阅读 · 0 评论