slice data safe append in multiple goroutines

02-09-17 3,542 views

        当多个goroutines对同一个数据进行操作时,可能会发生数据竞争问题(原子操作除外)。比如,在多goroutines...
阅读全文 0

Go Once 源码剖析

12-05-16 3,539 views

        很多时候程序执行时需要执行初始化操作,如果只需要执行一次即可。如果使用并发编程,则需要进行锁、逻辑...
阅读全文 0

Go Cond源码剖析

12-04-16 3,660 views

        今天来说说sync库中的信号量(condition),在Java、Python等有线程概念的语言中,信号量是用在多线程多任务...
阅读全文 0

Go sync WaitGroup 源码剖析

11-29-16 5,999 views

        今天来说说sync库WaitGroup的具体实现。WaitGroup用于等待goroutine集合执行完成。main goroutine调用Ad...
阅读全文 2

GO 读写锁源码剖析

11-27-16 4,343 views

        今天来说说Go读写锁的实现及源码剖析。在Go语言中读写锁用RWMutex表示。并发编程中使用读写锁,如果没有...
阅读全文 0

Go自旋锁源码剖析

11-23-16 3,676 views

        上一篇说到Mutex,Golang互斥锁的实现包含了自旋的功能。那么今天来说说自旋锁,在golang中自旋锁并没有作...
阅读全文 0

Go Mutex 源码剖析

11-21-16 4,864 views

        golang 并没有使用系统提供的互斥锁,而是在用户空间给予原子操作实现,以便更好地支持并发调度。golang ...
阅读全文 0

goroutine 内存泄漏问题

11-17-16 4,058 views

        昨天晚上失眠一夜,一直在琢磨关于goroutine 内存泄漏问题。今天早晨突然开窍,将这个问题想明白了。在抛...
阅读全文 2

golang 信号量源码剖析

11-16-16 2,748 views

        在之前使用CSP Channel 实现了一个简单的信号量。但是使用Channel实现粒度太大。Go内部实现是用原子操作...
阅读全文 0

Go channel

11-13-16 2,440 views

        今天来说说Go Channel,Go并没有实现严格的并发安全。在并发程序中如果要对全局变量、指针、引用类型这些...
阅读全文 0