独立博客档案 San Francisco

蛮荆

dbwu.tech

知名技术人,关注 Golang、微服务与云原生。

持续收录 后台收录 认领博客
收录文章
100
篇文字被发现
文章访问
109
次从这里出发阅读
博客访问
1
次前往作者站点
最近更新
04.01
2024年

FROM THIS BLOG

最近文章

第 6 / 9 页

sync.Map Code Reading

从内部底层实现来说,sync.Map 通过 entry 类型将 map 的变化和元素的变化进行隔离的同时, 还保证了底层数据的复用 (read map 和 dirty map 指向同一个 entry), read, dirty 2 个字段加原子操作的紧密配...

sync.Cond Code Reading

sync.Cond 不是一个常用的同步机制,在条件变量长时间无法满足时,sync.Cond 能够让出处理器的使用权,和单纯使用 for {} 进行无限等待相比,可以提高 CPU 的利用率。

sync.RWMutex Code Reading

如果一个 goroutine 持有了读锁进行操作,此时其他的 goroutine 可能尝试获取写锁 (参与竞争),那么在读锁被释放之前,不会有其他 goroutine 获取到读锁 (避免竞争写锁的 goroutine 被饿死), 一个 gorout...

sync.Once Code Reading

sync.Once 可以保证某段程序在运行期间的只执行一次,典型的使用场景有初始化配置, 数据库连接等,那么它的内部是如何实现的呢?

sync.Mutex Code Reading

互斥锁可以在两种模式下操作:正常模式和饥饿模式,正常模式的性能要好很多,因为 goroutine 可以连续多次获得互斥锁,即使存在阻塞的 goroutine, 与此同时,饥饿模式是防止尾部的 goroutine 被饿死的重要...

Go 无锁编程

锁是一种常见的同步机制,用来解决多个线程同时访问共享资源导致的数据竞争问题。在高并发场景下,锁的使用可能会成为性能瓶颈,因为线程需要频繁地加锁和释放锁,这会增加上下文切换开销并降低程序的吞吐...

sync/atomic Code Reading

sync/atomic 包提供了原子同步操作原语,整个操作过程无需加锁,也不会产生 goroutine 上下文切换。

goroutine 交替打印奇偶数

使用两个 goroutine 交替并且顺序地打印数字 1…10, 要求其中一个 goroutine 打印奇数,另一个 goroutine 打印偶数。

GODEBUG

GODEBUG 环境变量可以控制程序运行时的调度信息输出,方便开发者了解程序运行内部细节。

UUID 通用技术选型

分布式唯一 ID 是指在分布式系统中生成的全局唯一标识符。在分布式系统中,由于多个节点同时操作数据可能会导致数据冲突或者重复,因此需要为每个数据对象赋予一个唯一的标识符,以便在系统范围内进行区分...